Skip to main content
Glama
shrish346

docs-rag-mcp

by shrish346

docs-rag-mcp

MCP server that searches a local markdown corpus with TF-IDF retrieval and serves full documents as resources.

Architecture: docs/*.md → chunk + TF-IDF index (rag.py) → FastMCP exposes search_docs tool and doc://{path} resource (server.py).

MCP surface

Kind

Name

Description

Tool

search_docs

query + k — returns ranked chunks with path, score, excerpt

Resource

doc://{path}

Full markdown for a relative path (e.g. doc://rag-patterns.md)

Related MCP server: Inkdex

Run

uv sync
uv run fastmcp run server.py                    # stdio (Claude Desktop, Cursor)
uv run fastmcp run server.py -t http -p 8000    # HTTP for MCP Inspector

Test

uv run fastmcp list server.py
uv run fastmcp call server.py search_docs --query "TF-IDF" --k 3

Add your own notes under docs/ and restart the server (or re-run) to re-index.

Claude Desktop

See docs/claude-desktop-config.md for claude_desktop_config.json snippet. Use an absolute --directory path.

Searching Completed

Available Tools

1 tool
search_docsA

Search the documentation corpus with TF-IDF retrieval.

ParametersJSON Schema
NameRequiredDescriptionDefault
kNoMaximum number of chunks to return (default 5).
queryYesNatural-language search query.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'TF-IDF retrieval,' which discloses the algorithmic approach, but provides no insight into return behavior, sorting, or side effects. With no annotations, the description carries the burden, yet it lacks detail on what happens when invoking the tool.

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?

The description is a single, front-loaded sentence that conveys the core functionality without unnecessary words. Every word earns its place.

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 simple 2-parameter tool and the existence of an output schema, the description adequately covers the purpose. The schema handles parameter details, and the description completes the context. A full 5 would require more detail on expected output or limits, which is already present in schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema covers 100% of parameters with descriptions, the description does not need to add parameter information. It adds no extra semantic value beyond the schema, so baseline 3 is appropriate.

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 'Search the documentation corpus' with a specific verb and resource, and also specifies the retrieval method (TF-IDF). This clearly distinguishes the tool's purpose even without sibling tools.

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?

The description implies usage for searching documentation, but does not provide explicit guidance on when to use this tool versus alternatives or any prerequisites. No sibling tools are listed, so it relies on the verb 'Search' to convey its intended use.

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. 1 tool updatev0.1.0
    • First observedsearch_docs

TDQS

A4/5.0
Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between overlapping tools. The purpose of search_docs is singular and clear.

Naming Consistency5/5

The single tool name 'search_docs' follows a clear verb_noun pattern, which is consistent for the server's scope. There are no other names to compare, so it is perfectly consistent.

Tool Count4/5

A single tool for a docs RAG server is borderline but acceptable, as search is the primary function. However, it feels slightly thin, and additional tools like list_docs or get_doc could enhance usability.

Completeness4/5

For a documentation search server, search_docs covers the core retrieval need. Minor gaps exist such as no ability to list available document sources or fetch a specific document directly, but these are not critical for basic RAG workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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/shrish346/docs-rag-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server