Skip to main content
Glama

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:

  1. Sync dependencies and update lockfile:

uv sync
  1. Build package distributions:

uv build

This will create source and wheel distributions in the dist/ directory.

  1. Publish to PyPI:

uv publish

Note: You'll need to set PyPI credentials via environment variables or command flags:

  • Token: --token or UV_PUBLISH_TOKEN

  • Or username/password: --username/UV_PUBLISH_USERNAME and --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-mcp

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Available Tools

3 tools
get_document_infoA

Get information about a specific document including chunk count and metadata.

Args: document: The filename of the document to get info for

ParametersJSON Schema
NameRequiredDescriptionDefault
documentYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedget_document_info
    • First observedlist_documents
    • First observedsearch

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: listing documents, searching within them, and retrieving info about a specific document. No overlap in functionality.

Naming Consistency4/5

Tools use snake_case. 'list_documents' and 'get_document_info' follow verb_noun, but 'search' is a bare verb, creating a minor inconsistency.

Tool Count3/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Claude-compatible MCP server that enables storing and summarizing notes through a simple note storage system with custom URI scheme.
    5
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A 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

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