analyze_code_fileLABSCO SUMMARY
Take the whole runtime, or just the server you needed.
The servers are separable, and that is the practical way in: any MCP client can be pointed straight at one server's server.py under servers/ for the one capability you want, with no obligation to adopt the client, the scheduler or the memory layer. Taken whole it is an ambitious local-first stack, and the honest reading is that ambition costs — Ollama, several pulled models and the RAM to hold them. The per-server key requirements are listed up front, which makes it easy to run only the parts you can actually authenticate.
What it is
A local MCP runtime with a set of tool servers behind it. You can run the whole thing — a web client, multi-agent orchestration, persistent memory and a job scheduler — or ignore that and point any MCP client at the individual servers in the repository. Inference runs through Ollama locally rather than a hosted model. The README counts 95 tools across 13 servers.
What you get
- Code work: analysis, generation and refactoring in
code_assistant(12 tools), review and bug fixing incode_review(3 tools), and a Python and bash execution sandbox incode_runner(4 tools) - Gmail and Google Calendar in
google(13 tools), reachable through either OAuth or an Apps Script deployment - A media library with ML-driven recommendations in
plex(18 tools), and notes intrilium(11 tools) - Vector search and management in
rag(8 tools), which needs Ollama withbge-largepulled, plussession_history_toolfor reading the current session's messages back in order - Text processing and web search in
text(8 tools), image search, analysis and generation inimage(6 tools) — image generation is free, search needsSERPER_API_KEY, and the Shashin photo-gallery tools (shashin_search,shashin_random,shashin_analyze) need a running Shashin server withSHASHIN_BASE_URLandSHASHIN_API_KEY - Weather, time and location in
location(3 tools), using Open-Meteo with no key and falling back to OpenWeatherMap if one is set - Machine facts in
system(3 tools), GitHub repo clone, browse and cleanup ingithub(4 tools), and Discord webhook notifications indiscord(2 tools) - If you run the client too: persistent memory across sessions, RAG over your documents, a proactive job scheduler, and a web UI at
http://localhost:9000/client/ui/index.html
Requirements
Python 3.12+, Ollama installed, and 16GB or more of RAM recommended. Models are pulled per capability: a tool-calling model for inference, a small one for routing, bge-large for RAG embeddings and a vision model for image work; local GGUF files work too. Individual servers need only their own keys — SERPER_API_KEY for image search, PLEX_URL and PLEX_TOKEN for the media library, TRILIUM_URL and TRILIUM_TOKEN for notes, DISCORD_WEBHOOK_URL for notifications — and Google works through Apps Script as an alternative to OAuth. Setup is a virtualenv and pip install -r requirements.txt; on WSL2 create the venv in the Linux filesystem, since NTFS cannot hold the symlinks a venv needs. The client package is mcp-client-ui (1.0.0). The project describes itself as experimental and for personal use rather than production.
Setup effort
Build from source — git clone https://github.com/MichaelYagi/mcp-platform.git
USE CASES
Running an assistant with no hosted model
Point everything at a local Ollama install so inference, embeddings and vision all stay on your own machine.
Taking just one capability into your existing client
Add a single server — the code sandbox, the RAG search, the location tools — to a client you already use, and skip the rest.
Searching your own documents
Pull bge-large, ingest into the RAG server, and query your material as vector search from the assistant.
Wiring email and calendar in without an OAuth project
Deploy the bundled Apps Script as a web app and point the Google tools at that URL instead of setting up OAuth credentials.
95 tools
Listed in project code.
fix_code_filesuggest_improvementsexplain_codegenerate_testsrefactor_codegenerate_codeanalyze_projectextend_codedetect_inconsistenciesexplain_architectureexplain_change_impactreview_codesearch_code_in_directorydebug_fixrun_pythonrun_python_filerun_bashpip_installdiscord_notifydiscord_list_webhooksgithub_clone_repogithub_list_filesgithub_get_file_contentgithub_cleanup_repogmail_get_unreadgmail_get_recentgmail_get_emailgmail_send_emailcalendar_get_todaycalendar_get_this_weekcalendar_create_eventgmail_reply_toolgmail_searchgmail_check_repliedget_day_briefinggoogle_reauth_startgoogle_reauth_completeanalyze_image_toolshashin_search_toolshashin_random_toolshashin_analyze_toolweb_image_search_toolgenerate_image_toolget_location_toolget_time_toolget_weather_toolrag_diagnose_plex_toolsemantic_media_search_textscene_locator_toolfind_scene_by_titleplex_find_unprocessedplex_ingest_itemsplex_ingest_singleplex_ingest_batchrag_rescan_no_subtitlesplex_get_statsimport_plex_historyauto_train_from_plexrecord_viewingtrain_recommenderrecommend_contentget_recommender_statsreset_recommenderauto_recommend_from_plexsession_history_toolrag_add_toolrag_search_toolrag_status_toolrag_browse_toolrag_list_sources_toolrag_delete_source_toolrag_delete_document_toolget_hardware_specs_toolget_system_infolist_system_processessummarize_text_toolexplain_simplified_toolconcept_contextualizer_toolread_file_tool_handlerimprove_text_toolweb_search_toolweb_fetch_toolsummarize_url_toolsearch_notessearch_by_labelget_note_by_idcreate_noteupdate_note_contentupdate_note_titledelete_noteadd_label_to_noteget_note_labelsget_note_childrenget_recent_notesBEFORE YOU INSTALL
What to know first
Tools you get
95 tools registered in the project's code.
Requires
- Python 3.12+
- 16GB+ RAM recommended
- Ollama installed
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/MichaelYagi/mcp-platform.git
cd mcp-platform
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS (.venv\Scripts\activate on Windows PowerShell)
pip install -r requirements.txt
curl -fsSL https://ollama.com/install.sh | shStart Ollama in a separate terminal and leave it running (ollama serve stays in the foreground):
OLLAMA_HOST=0.0.0.0:11434 ollama serveThen, back in the first terminal, pull the models:
ollama pull qwen2.5:14b-instruct-q4_K_M
ollama pull qwen2.5:0.5b
ollama pull bge-large
ollama pull qwen3-vl:8b-instructCreate .env in the project root. These are the README's minimal .env lines; OLLAMA_TOKEN and SERPER_API_KEY are your own Ollama and Serper keys.
OLLAMA_VISION_MODEL=qwen3-vl:8b-instruct
DISABLED_TOOLS=plex:*,image_tools:shashin_analyze,shashin_random,shashin_search
OLLAMA_TOKEN=<YOUR_OLLAMA_TOKEN>
SERPER_API_KEY=<YOUR_SERPER_API_KEY>Then start the client.
python client.pyMCP Clients
Claude Desktop, Any MCP client
{
"mcpServers": {
"code_assistant": {
"command": "<YOUR_PATH_TO_MCP_PLATFORM>/.venv/bin/python",
"args": [
"<YOUR_PATH_TO_MCP_PLATFORM>/servers/code_assistant/server.py"
]
}
}
}