MCP Knowledge Assistant
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Knowledge Assistantsearch for content on MCP tool design"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Knowledge Assistant
A read-only Model Context Protocol (MCP) server that lets an AI client search a knowledge base and retrieve complete source documents. The project starts with a small local prototype, then applies the same tool contract to semantic retrieval from an OpenAI vector store.
What this demonstrates
MCP tool design with narrow
searchandfetchresponsibilitiesStructured inputs and outputs using FastMCP and Pydantic
Semantic retrieval over uploaded documents in an OpenAI vector store
Document-level deduplication when vector search returns several matching chunks
Streamable HTTP and
stdioMCP transportsEnd-to-end tool use through the OpenAI Responses API and a secure MCP tunnel
Configuration through environment variables, with no credentials in source code
Unit and protocol-level tests that do not make paid API calls
Related MCP server: File AI
Architecture
OpenAI Responses API
|
| MCP tool calls through an outbound secure tunnel
v
Local FastMCP server (Streamable HTTP)
|
| vector-store search and file retrieval
v
OpenAI vector store -> uploaded documentsThe repository also includes a fully local learning path:
Local demo client -> FastMCP server (stdio) -> data/documents.jsonBoth servers expose the same public tool contract:
Tool | Input | Purpose |
|
| Return compact, relevant document references. |
|
| Retrieve one complete document selected from search. |
Keeping discovery separate from retrieval avoids sending full documents before they are needed and gives the model stable document IDs to use in later calls.
Project structure
.
├── data/documents.json # Sample local knowledge base
├── sample_data/cats.pdf # Public-domain vector-store sample
├── src/mcp_knowledge_assistant/
│ ├── knowledge_base.py # Local keyword retrieval
│ ├── models.py # Shared response schemas
│ ├── server.py # Local stdio MCP server
│ └── vector_store_server.py # OpenAI vector-store MCP server
├── tests/ # Offline unit and MCP tests
├── demo_client.py # Local stdio demonstration
├── vector_store_demo_client.py # Direct HTTP MCP demonstration
└── api_client.py # Responses API + secure tunnel demonstrationRequirements
Python 3.11 or newer
An OpenAI API project with billing enabled for the vector-store path
The included sample PDF, or your own document, uploaded to an OpenAI vector store
The OpenAI tunnel client only for the secure-tunnel demonstration
The local JSON server and the complete test suite require no API key.
Sample document attribution
The vector-store demonstration uses Cats: Their Points and Characteristics by W. Gordon Stables, Project Gutenberg eBook #43429. The sample PDF is hosted by OpenAI and was produced from the Project Gutenberg edition. See the PDF for the Project Gutenberg licence and applicable reuse terms.
Setup
Clone the repository, create a virtual environment, and install the project:
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"For OpenAI-backed examples, copy the environment template:
cp .env.example .env.localThen add your own values to .env.local:
OPENAI_API_KEY=your_project_api_key
VECTOR_STORE_ID=vs_your_vector_store_id.env.local, PyCharm settings, virtual environments, and local tunnel profiles
are excluded from Git.
1. Run the local prototype
The first server uses stdio, so the MCP client launches it as a child process
and communicates over standard input and output:
python demo_client.pyThe demo discovers both tools, searches the sample JSON knowledge base, and fetches the selected document.
You can also start the server through its installed command:
mcp-knowledge-assistantA silent, waiting process is normal for a stdio server that has no connected
client.
2. Run the vector-store server
Upload sample_data/cats.pdf to an OpenAI vector store, then set
OPENAI_API_KEY and VECTOR_STORE_ID in .env.local. You may substitute your
own document and query if preferred. Start the Streamable HTTP server:
mcp-vector-store-assistantBy default, its MCP endpoint is:
http://127.0.0.1:8000/mcpIn a second terminal, test the endpoint directly:
python vector_store_demo_client.pyVector search operates on chunks, so a long document may produce several
matches with the same file ID. The MCP search tool deliberately collapses
those matches into one document result. The fetch tool then retrieves and
combines that document's parsed content for the model.
3. Call it through the Responses API
Follow OpenAI's secure MCP tunnels guide
to create a tunnel, configure its ignored local profile to target
http://127.0.0.1:8000/mcp, and start the tunnel client. Add the resulting ID to
.env.local:
MCP_TUNNEL_ID=tunnel_your_tunnel_idThe tunnel client reads its own runtime credential from
CONTROL_PLANE_API_KEY. Keep that value local as well. With the vector server
and tunnel client both running, execute:
python api_client.pyThe Responses API request declares only the read-only search and fetch MCP
tools. The model can search, fetch a selected source, and compose an answer from
the retrieved content.
Tests
Run all tests with:
pytestThe tests cover local ranking and fetching, MCP tool discovery, vector-result deduplication, content assembly, and input validation. OpenAI calls are mocked, so the suite is repeatable and does not consume API credits.
Design decisions and scope
Read-only first: neither MCP tool changes files or external state.
Stable compatibility contract:
search(query)returns document references;fetch(id)returns complete content and metadata.Document results, not chunk results: chunks are retrieval evidence inside the vector store, while the MCP client receives stable file IDs.
MCP is an abstraction layer: for a single OpenAI-hosted vector store, the Responses API's built-in File Search tool is simpler. MCP becomes useful when the same retrieval interface must serve multiple clients, hide backend details, or later add authorization and domain logic.
Verified integration boundary: the local servers, direct MCP clients, and Responses API path through the secure tunnel were exercised during development. This repository does not claim a deployed public server or a published ChatGPT app.
Security notes
Never commit
.env.local, API keys, tunnel runtime keys, or organization IDs.Use project-scoped credentials and grant only the permissions required.
Keep the local MCP server bound behind the secure outbound tunnel rather than opening an inbound firewall port.
Review tool permissions before adding any write or consequential action.
References
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides tools for retrieving and processing documentation through vector search, enabling AI assistants to augment their responses with relevant documentation context.12MIT
- AlicenseBqualityCmaintenanceA read-only MCP server that provides document awareness for agents by parsing local files into structured profiles, blocks, chunks, and search results, enabling agents to understand and cite document content without dealing with raw file formats.5383Apache 2.0
- FlicenseNot gradedqualityBmaintenanceAn MCP server that connects the Casio Plus knowledge base (playbooks, architecture, learning resources) to AI clients, offering read-only search and validation tools along with controlled feedback intake and review workflows.
- AlicenseNot gradedqualityAmaintenanceMCP server that enables AI agents to search, fetch, and analyze a self-maintaining markdown knowledge base with provenance, drift detection, and canonical definitions.MIT
Related MCP Connectors
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Shared, peer-validated knowledge archive for AI agents — search, contribute, and validate via MCP
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/channico/mcp-knowledge-assistant'
If you have feedback or need assistance with the MCP directory API, please join our Discord server