docstore-mcp
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., "@docstore-mcpAdd note about meeting agenda"
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.
docstore-mcp MCP server
A small chromadb based document storage mcp server
Components
Resources
The server implements a simple note storage system with:
Custom note:// URI scheme for accessing individual notes
Each note resource has a name, description and text/plain mimetype
Prompts
The server provides a single prompt:
summarize-notes: Creates summaries of all stored notes
Optional "style" argument to control detail level (brief/detailed)
Generates prompt combining all current notes with style preference
Tools
The server implements one tool:
add-note: Adds a new note to the server
Takes "name" and "content" as required string arguments
Updates server state and notifies clients of resource changes
Related MCP server: Soduku Solver MCP Server
Configuration
[TODO: Add configuration details specific to your implementation]
Quickstart
Install
Claude Desktop
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development
Building and Publishing
To prepare the package for distribution:
Sync dependencies and update lockfile:
uv syncBuild package distributions:
uv buildThis will create source and wheel distributions in the dist/ directory.
Publish to PyPI:
uv publishNote: You'll need to set PyPI credentials via environment variables or command flags:
Token:
--tokenorUV_PUBLISH_TOKENOr username/password:
--username/UV_PUBLISH_USERNAMEand--password/UV_PUBLISH_PASSWORD
Debugging
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm with this command:
npx @modelcontextprotocol/inspector uv --directory /Users/johanneswiebe/dev/docstore/docstore-mcp run docstore-mcpUpon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
Available Tools
3 toolsget_document_infoA
Get information about a specific document including chunk count and metadata.
Args: document: The filename of the document to get info for
| Name | Required | Description | Default |
|---|---|---|---|
| document | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies a read operation ('Get information'), but with no annotations, it does not explicitly confirm read-only behavior or discuss other behavioral aspects like error handling or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a parameter description. Every word serves a purpose, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description sufficiently covers the core functionality and return content (chunk count and metadata). Could add details on what metadata includes or error scenarios, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but the description explains the sole parameter as 'The filename of the document to get info for', adding crucial meaning beyond the schema's bare string type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get information about a specific document', with specifics on chunk count and metadata. This distinguishes it from sibling tools list_documents and search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_documents or search. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsA
Get a list of all indexed documents. Returns a list of document filenames that have been ingested.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses the return type (filenames) and scope (all indexed documents) but does not mention side effects, authorization, or rate limits. It implies a read-only operation but isn't explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the action and avoid extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is complete enough for a simple list tool. It clarifies what is returned (filenames) and could mention pagination, but is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description naturally adds no param info. Baseline is 4, and the description is not penalized for missing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets a list of all indexed documents and specifies the return type (filenames). It distinguishes from siblings: search likely queries content, get_document_info likely retrieves details of a single document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. The sibling names imply separation of concerns, but the description could state that this tool is for listing all documents, while search is for querying and get_document_info for details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchA
Search indexed PDF documents for relevant chunks.
Args: query: The search query text n_results: Maximum number of results to return (default: 5) document: Optional specific document filename to search within
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| document | No | ||
| n_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It states the tool searches for chunks but does not mention that it is read-only, any required authentication, rate limits, or how relevance is determined. Minimal transparency beyond functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence defining the purpose followed by a clear list of parameter explanations. Every part is earned, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality and parameters but lacks explanation of return values (no output schema), error handling, or how to interpret results. Also missing context on when to use this tool relative to siblings. Adequate but with notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains all three parameters: query (search text), n_results (max count, default 5), and document (optional filter). This adds meaning beyond the bare schema, though the format or constraints could be more detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches indexed PDF documents for relevant chunks. It distinguishes from sibling tools 'list_documents' (listing all documents) and 'get_document_info' (getting info on a specific document) by focusing on content search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies usage for searching within documents, but does not mention when not to use it or provide context for sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
get_document_info - First observed
list_documents - First observed
search
TDQS
Each tool has a distinct purpose: listing documents, searching within them, and retrieving info about a specific document. No overlap in functionality.
Tools use snake_case. 'list_documents' and 'get_document_info' follow verb_noun, but 'search' is a bare verb, creating a minor inconsistency.
Three tools is minimal for a document store. While the core operations of listing, searching, and getting info are present, the set feels sparse for a full-featured server.
The server lacks essential operations like adding or deleting documents. Without ingestion or removal tools, the surface is incomplete for managing a document store.
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 Connectors
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Claude-compatible MCP server that enables storing and summarizing notes through a simple note storage system with custom URI scheme.5-
- FlicenseCqualityDmaintenanceA simple MCP server implementing a note storage system with one tool to add notes and one prompt to summarize stored notes.42-
- FlicenseNot gradedqualityDmaintenanceA note management MCP server that enables users to store, retrieve, and summarize personal notes via a custom URI scheme. It provides tools for adding content and prompts for generating brief or detailed summaries of stored information.-
- AlicenseNot gradedqualityBmaintenanceA Python MCP server for note management with RAG capabilities, enabling adding, searching, asking questions, summarizing, and deleting notes, using PostgreSQL and ChromaDB with Google Gemini for embeddings and generation.MIT
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/johwiebe/docstore'
If you have feedback or need assistance with the MCP directory API, please join our Discord server