A Model Context Protocol server for ingesting, chunking and semantically searching documentation files, with support for markdown, Python, OpenAPI, HTML files and URLs.
A Model Context Protocol (MCP) server for document ingestion, chunking, semantic search, and note management.
note://
URI scheme for accessing individual notestext/plain
mimetypeThe server implements a wide range of tools:
name
(string), content
(string)content
(string, required), source
(string, optional), tags
(list of strings, optional)path
(string)path
(string)path
(string)path
(string)url
(string), dynamic
(boolean, optional)path
(string, required): File path to ingest.prompt
(string, optional): Custom prompt to use for Gemini.tags
(list of strings, optional): Optional list of tags for classification.query
(string): The semantic search query.top_k
(integer, optional, default 3): Number of top results to return.type
(string, optional): Filter results by chunk type (e.g., code
, html
, markdown
).tag
(string, optional): Filter results by tag in chunk metadata.source
(string)id
(integer, optional), ids
(list of integers, optional)id
, or delete multiple chunks at once by specifying ids
.id
(integer, required), type
(string, required)paths
(list of strings)tag
(string, optional): Filter sources by tag in chunk metadata.query
(string, optional): Semantic search query to find relevant sources.top_k
(integer, optional, default 10): Number of top sources to return when using query.query
(string, optional): The semantic search query.tag
(string, optional): Filter results by a specific tag in chunk metadata.type
(string, optional): Filter results by chunk type (e.g., 'code', 'markdown').top_k
(integer, optional, default 5): The number of top relevant chunks to retrieve.id
(integer), metadata
(object)source
(string), tags
(list of strings)readability-lxml
library to extract main content first, then extracts block code snippets from tags as dedicated "code" chunks. Inline
content remains part of the narrative chunks.search-chunks
tool performs vector-based semantic search over all ingested content, returning the most relevant chunks for a given query.type
and tag
arguments to filter results by chunk type (e.g., code
, html
, markdown
) and/or by tag in chunk metadata, before semantic ranking.metadata
field for categorization and tagging.update-chunk-metadata
tool allows updating metadata for any chunk by its id.tag-chunks-by-source
tool allows adding tags to all chunks from a specific source in one operation. Tagging merges new tags with existing ones, preserving previous tags.The server requires the following environment variables (can be set in a .env file):
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
"mcpServers": {
"doc-lib-mcp": {
"command": "uv",
"args": [
"--directory",
"/home/administrator/python-share/doc-lib-mcp",
"run",
"doc-lib-mcp"
]
}
}
Published Servers Configuration
"mcpServers": {
"doc-lib-mcp": {
"command": "uvx",
"args": [
"doc-lib-mcp"
]
}
}
To prepare the package for distribution:
uv sync
uv build
This will create source and wheel distributions in the dist/
directory.
uv publish
Note: You'll need to set PyPI credentials via environment variables or command flags:
--token
or UV_PUBLISH_TOKEN
--username
/UV_PUBLISH_USERNAME
and --password
/UV_PUBLISH_PASSWORD
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 /home/administrator/python-share/doc-lib-mcp run doc-lib-mcp
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!