The two-step split is the useful pattern here: excerpts are cheap to search and often not enough, so `get_content` exists to pull the full file once you know which one matters. Documentation deliberately chopped into small files is what makes that work.
A small MCP server exposing three tools over SSE transport. It fetches remote pages, and it holds the MCP Python SDK documentation split into small files with a semantic index over them, so an agent can find the right passage and then read the whole file.
- fetch — give it an absolute URL, get the page text back
- search_docs — semantic search across the bundled SDK documentation, returning the top matches; `query` is required and `k` defaults to 3
- get_content — the full local file behind any match `search_docs` returned, by path relative to the docs directory
- A CLI that manages the server itself: `start`, `stop`, `check` for a health check, and `restart`, which stops the old server, starts a new one in the background, waits until it responds, and logs to server.log
Python 3.10 or higher, with dependencies from `requirements.txt` in a virtual environment. Start it with `python -m mcp_simple_tool start`; it listens on port 7000 unless you pass `--port`. Clients connect over SSE — for Cursor that is a `.cursor/mcp.json` entry pointing at `http://localhost:7000/sse`. The semantic index builds automatically on first use of `search_docs`, or you can build it ahead of time with `python scripts/build_doc_index.py`.
