Skip to main content
Glama
rfbatista

document-manager-mcp

by rfbatista

Document Manager MCP

An MCP (Model Context Protocol) server for managing product documentation as markdown files. Use it from Cursor, Claude Desktop, or any MCP client to create, read, update, delete, and search documentation.

Document types

All files are stored as markdown under a configurable project root, in these categories:

Type

Folder

Use for

feature-specs

docs/feature-specs/

Feature specifications

jtbd

docs/jtbd/

Jobs to be done

user-stories

docs/user-stories/

User stories

api

docs/api/

API documentation

A special file docs/product-vision-and-strategy.md holds the product vision and strategy. Use the product_vision_and_strategy tool to view it and create it (with a default template) if it doesn’t exist.

Related MCP server: Markdown RAG MCP

Project identity (multiple MCPs)

When you run several Document Manager MCPs (e.g. one per project), set a project name so you can tell them apart in Cursor:

  • Environment variable: DOCS_PROJECT_NAME — short label for this project (e.g. my-app, backend-api).

  • The server then appears in Cursor as "document-manager (my-app)" instead of just "document-manager".

Example with two projects:

{
  "mcpServers": {
    "document-manager-my-app": {
      "command": "npx",
      "args": ["document-manager-mcp"],
      "env": {
        "DOCS_PROJECT_ROOT": "/path/to/my-app",
        "DOCS_PROJECT_NAME": "my-app"
      }
    },
    "document-manager-backend": {
      "command": "npx",
      "args": ["document-manager-mcp"],
      "env": {
        "DOCS_PROJECT_ROOT": "/path/to/backend",
        "DOCS_PROJECT_NAME": "backend-api"
      }
    }
  }
}

You’ll see two MCPs: document-manager (my-app) and document-manager (backend-api).

Project root

Set the project root so the MCP knows where to read/write files:

  • Environment variable: DOCS_PROJECT_ROOT (absolute or relative path).

  • If unset, the server uses the current working directory when the server starts.

Example: if DOCS_PROJECT_ROOT=/Users/you/my-product, then:

  • Feature specs go in /Users/you/my-product/docs/feature-specs/

  • API docs go in /Users/you/my-product/docs/api/, etc.

MCP tools

Tool

Description

list_docs

List all docs, optionally filtered by type.

read_doc

Read a doc by docType and slug (filename).

write_doc

Create or overwrite a doc (markdown content).

create_doc

Create a new doc; fails if it already exists.

delete_doc

Delete a doc by type and slug.

search_docs

Search by text. With DOCS_EMBEDDING_PROVIDER=local, uses semantic search (by meaning); otherwise keyword search. Optional type filter, mode, limit.

product_vision_and_strategy

View the product vision and strategy doc; creates docs/product-vision-and-strategy.md with a default template if it doesn’t exist.

MCP resources

Docs are exposed as resources with URIs:

  • Pattern: doc://{docType}/{slug}

  • Examples: doc://feature-specs/auth-spec.md, doc://api/users-endpoint.md

  • Product vision and strategy: doc://product-vision-and-strategy (single resource; create the file with the product_vision_and_strategy tool if needed).

Clients can list and read these resources like files (e.g. in Cursor’s MCP resource UI).

No install needed. Use npx so the package is run on demand:

npx document-manager-mcp

With environment variables:

DOCS_PROJECT_ROOT=/path/to/your/project DOCS_PROJECT_NAME=my-project npx document-manager-mcp

In Cursor (or another MCP client), configure the server to run via npx:

{
  "mcpServers": {
    "document-manager": {
      "command": "npx",
      "args": ["document-manager-mcp"],
      "env": {
        "DOCS_PROJECT_ROOT": "/ABSOLUTE/PATH/TO/YOUR/PROJECT",
        "DOCS_PROJECT_NAME": "your-project"
      }
    }
  }
}

Replace /ABSOLUTE/PATH/TO/YOUR/PROJECT with the folder that should contain the docs/ tree. DOCS_PROJECT_NAME is optional; use it when you run multiple Document Manager MCPs so you can tell them apart.

Semantic search (local embeddings)

To search by meaning (e.g. “login” matching “authentication”, “sign-in”) instead of exact text only, use a local embedding model. No API key required.

Set in your MCP server env:

  • DOCS_EMBEDDING_PROVIDER=local — enables semantic search using Transformers.js and the default model Xenova/all-MiniLM-L6-v2 (downloaded on first use, then cached).

  • DOCS_EMBEDDING_MODEL (optional) — another Hugging Face model ID for feature extraction (e.g. Xenova/all-mpnet-base-v2 for higher quality, larger download).

Example:

{
  "mcpServers": {
    "document-manager": {
      "command": "npx",
      "args": ["document-manager-mcp"],
      "env": {
        "DOCS_PROJECT_ROOT": "/path/to/your/project",
        "DOCS_PROJECT_NAME": "my-project",
        "DOCS_EMBEDDING_PROVIDER": "local"
      }
    }
  }
}

The first semantic search will build an index under .document-manager/embedding-index.json; later searches reuse it until docs change. You can pass mode: "keyword" to search_docs to force exact-text search, or mode: "semantic" when local embeddings are enabled.

Cursor setup

  1. Configure Cursor
    In Cursor: Settings → MCP (or edit your MCP config file). Add a server entry using npx and set the project root via env:

    {
      "mcpServers": {
        "document-manager": {
          "command": "npx",
          "args": ["document-manager-mcp"],
          "env": {
            "DOCS_PROJECT_ROOT": "/ABSOLUTE/PATH/TO/YOUR/PROJECT",
            "DOCS_PROJECT_NAME": "your-project"
          }
        }
      }
    }

    Replace /ABSOLUTE/PATH/TO/YOUR/PROJECT with the folder that should contain the docs/ tree (feature-specs, jtbd, user-stories, api). Use DOCS_PROJECT_NAME as a short label when you have multiple Document Manager MCPs (optional).

  2. Restart Cursor (or reload MCP) so it picks up the server.

Running from source

If you develop or fork this repo and want to run the built server without npx:

git clone https://github.com/rfbatista/document-manager-mcp.git
cd document-manager-mcp
npm install
npm run build

Then in your MCP config use "command": "node" and "args": ["/ABSOLUTE/PATH/TO/document-manager-mcp/build/index.js"].

Claude Desktop setup

Add the server to claude_desktop_config.json and run it with npx:

{
  "mcpServers": {
    "document-manager": {
      "command": "npx",
      "args": ["document-manager-mcp"],
      "env": {
        "DOCS_PROJECT_ROOT": "/ABSOLUTE/PATH/TO/YOUR/PROJECT",
        "DOCS_PROJECT_NAME": "your-project"
      }
    }
  }
}

Development

npm install
npm run build   # build once
npm run start   # run built server (stdio)

Use stderr for logs; stdout is used for MCP JSON-RPC.

License

MIT

document-manager-mcp

Available Tools

7 tools
create_docB

Create a new documentation file with optional initial content. Use docType to choose category.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesFilename or slug (e.g. my-feature.md)
contentNoInitial markdown content (optional)
docTypeYesDocument type

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden, but it only states the basic creation action and optional content. It does not disclose what happens if the file already exists (overwrite vs. error), permission requirements, or side effects. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no redundant words, clearly front-loading the primary action. It is clean and scannable, though it sacrifices some depth for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple create operation, but the absence of annotations and output schema places a heavy burden on the description. It fails to address important operational realities such as slug conflicts, overwrite behavior, return values, or differentiation from write_doc. This leaves notable gaps in context.

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?

The input schema already documents all parameters with descriptions and an enum, so the baseline is 3. The description adds only a minor interpretive note about docType choosing categories and 'optional initial content,' but provides no examples or extra syntax details beyond the schema.

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 specifies the action ('Create a new documentation file') and distinguishes this tool from siblings by emphasizing 'new' and optional initial content. It also mentions docType for category selection, which adds purpose specificity.

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 explicit guidance is provided on when to use this tool versus alternatives such as write_doc. It does not mention typical scenarios, exclusions, or what to do with an existing slug. The instruction to use docType is about parameter selection rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_docA

Delete a documentation file by type and slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesFilename or slug to delete
docTypeYesDocument type

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The verb 'Delete' implies a destructive action, but the description does not state that the deletion is permanent, irreversible, or what exactly happens to the file (e.g., removed from storage). This lack of warning is a significant gap for a destructive operation.

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 direct sentence with no filler. Every word is essential: it names the action, target, and the two parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with complete schema coverage and no output schema, the description conveys the core operation. However, it does not provide details about side effects, prerequisites (e.g., whether the file must exist), or the irreversible nature of deletion. Given the lack of annotations, the description is adequate but not fully complete for safe autonomous use.

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?

The input schema already describes both docType and slug with 100% coverage, including the enum values for docType. The description simply repeats the parameter names ('by type and slug') without adding any new semantic meaning, so the baseline score of 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 explicitly states the action (delete), the resource (documentation file), and the required identifiers (type and slug). This clearly distinguishes it from sibling tools like read_doc and write_doc by the delete action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly signals when to use the tool: when a documentation file needs to be deleted by type and slug. It does not explicitly mention when not to use it or compare with alternatives, but the purpose is unambiguous and the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_docsA

List documentation files. Optionally filter by doc type (feature-specs, jtbd, user-stories, api).

ParametersJSON Schema
NameRequiredDescriptionDefault
docTypeNoFilter by document type. Omit to list all types.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It communicates a read-only listing operation and the filter, but does not disclose return format (e.g., whether it returns full doc contents or metadata), sorting, pagination, or potential error cases. This is adequate for a simple list but not rich.

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 two short sentences, immediately conveys the action and filter, and contains no filler. It is well-structured and front-loaded.

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?

For a tool with a single optional parameter and no output schema, the description covers the core purpose and filtering. However, the lack of return value explanation and absence of guidance vs. search_docs leaves some contextual gaps, though minor.

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?

The input schema already fully documents the 'docType' parameter with enum values and a description. The tool's description repeats the enum list but adds no additional semantics beyond what the schema provides.

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 the tool's function with a specific verb ('List') and resource ('documentation files'), and the optional filter by doc type adds a distinct scope. It differentiates from siblings like read_doc and write_doc, which imply targeting specific docs.

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 enumerating documentation files, optionally filtered by type. However, it does not explicitly state when to prefer this over search_docs or how it differs from reading a single doc. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

product_vision_and_strategyA

View the product vision and strategy document. Creates the file with a default template (docs/product-vision-and-strategy.md) if it does not exist.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly discloses the key side effect: if the file does not exist, it is created with a default template. This is important context for the agent, though it omits details like return value 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?

The description is two concise sentences, front-loaded with the primary action and then a conditional side effect. Every sentence earns its place, with no redundant or filler text.

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 (no parameters, no output schema), the description adequately conveys the main behavior and the side effect. It does not explain the return format, but this is largely inferable from the 'View' action and the simple nature of the tool.

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?

The tool has zero parameters, so the schema fully covers parameter semantics. Per the rubric, the description does not need to add parameter information; the baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('View') and a specific resource (the product vision and strategy document), which clearly distinguishes it from generic document tools like read_doc or write_doc. However, the second sentence introduces a creation side effect, slightly blurring whether this is purely a read operation.

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 when to use the tool: when you need the product vision and strategy document, including automatic initialization if missing. It does not explicitly compare with sibling tools or state when not to use it, so guidance is only implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_docA

Read the content of a documentation file by type and slug (filename without path).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesFilename or slug (e.g. my-feature.md or my-feature)
docTypeYesDocument type

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden, but it only states the obvious read action. It does not disclose edge cases (e.g., missing file), return format, or confirm that no modifications occur—traits an agent might need to know.

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?

Single sentence, front-loaded with the action and resource, and no unnecessary words. Perfectly concise.

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?

For a simple read tool with only 2 parameters, the description is complete enough to convey what it does and how to identify the file. It lacks return-value expectations or error behavior, but these are not critical for a straightforward read operation.

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?

Schema coverage is 100%, and the description's 'slug (filename without path)' essentially mirrors the schema's 'Filename or slug' description. No significant additional meaning is added beyond what the schema already provides.

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?

Purpose is clear: 'Read the content' specifies the exact action on a documentation file, and the parameters (type and slug) are stated. This distinguishes it from siblings like list_docs, write_doc, and delete_doc.

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 (when you need the content of a specific doc) but provides no explicit guidance on when to choose this over alternatives like search_docs or list_docs. There are no exclusions or alternative mentions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsA

Search documentation by text. Use semantic search (by meaning) when local embeddings are enabled (DOCS_EMBEDDING_PROVIDER=local), otherwise keyword (case-insensitive) search.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoSearch mode: keyword (exact text) or semantic (by meaning). Default: semantic if embeddings enabled, else keyword.
limitNoMax results (default 10)
queryYesText to search for in document content
docTypeNoLimit search to this doc type

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that keyword search is case-insensitive and that semantic search depends on local embeddings (DOCS_EMBEDDING_PROVIDER=local), which is a behavioral trait. However, it does not disclose return format, pagination, or whether the operation is read-only, leaving gaps for a search 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 two sentences long, front-loaded with the purpose, and every sentence adds value. It avoids redundancy and is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite four parameters and no output schema, the description covers the main behavioral context (mode switches) but omits return value details and error conditions. Given the tool's simplicity, this is adequate but leaves gaps typical of an undisclosed output format.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds a small behavioral detail (case-insensitivity) and restates the mode default already present in the schema, but does not significantly deepen understanding of parameters beyond the schema definitions.

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 the tool searches documentation by text, using the verb 'search' and a specific resource ('documentation'). It also distinguishes itself from sibling tools (list_docs, read_doc, write_doc, etc.) by its search functionality, and the mode detail (semantic vs. keyword) adds specificity.

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 provides clear context on when to use semantic vs. keyword search based on the environment variable, which is helpful for mode selection. However, it does not explicitly state when to use this tool over alternatives (e.g., list_docs or read_doc), relegating tool selection to implication rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_docA

Write or overwrite a documentation file. Content must be markdown. Creates parent folder if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesFilename or slug (e.g. my-feature.md)
contentYesMarkdown content to write
docTypeYesDocument type

TDQS

A3.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It explicitly states 'overwrite' (destructive behavior) and 'Creates parent folder if needed' (side effect), plus the markdown requirement. This is meaningful behavioral disclosure, though it doesn't mention return values or auth requirements.

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 front-load the main action and constraints. Every piece of information earns its place; no filler.

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?

For a simple write tool, the description covers core behavior (write/overwrite, content type, folder creation). It doesn't address sibling differentiation (create_doc) or return values, but the schema covers params and the behavior is adequately described for a low-complexity tool.

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?

Schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds minimal parameter insight—'Content must be markdown' echoes the schema's 'Markdown content to write' and 'Creates parent folder if needed' is more about folder side effects than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb ('Write or overwrite') and resource ('documentation file'), and notes constraints. However, it doesn't differentiate from sibling tool 'create_doc', so it is clear but lacks sibling distinction.

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 choose this tool over create_doc or other siblings. No exclusions or prerequisites are mentioned beyond the markdown constraint, so the agent gets no help choosing between write and create alternatives.

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. 7 tool updatesv1.1.0
    • First observedcreate_doc
    • First observeddelete_doc
    • First observedlist_docs
    • First observedproduct_vision_and_strategy
    • First observedread_doc
    • First observedsearch_docs
    • First observedwrite_doc

TDQS

A3.7/5.0
Disambiguation3/5

Most tools are distinct (list, read, delete, search), but write_doc and create_doc both can create files, and product_vision_and_strategy overlaps with read/create for a specific doc. The descriptions help differentiate, but an agent might misselect for creation tasks.

Naming Consistency4/5

The verb_noun pattern (list_docs, read_doc, write_doc, create_doc, delete_doc, search_docs) is consistent, though singular/plural varies. product_vision_and_strategy breaks the pattern as a noun phrase.

Tool Count5/5

Seven tools is appropriate for a document manager, covering core operations without bloat.

Completeness5/5

The set provides full CRUD (create via create_doc/write_doc, read, update via write_doc, delete), plus list and search. No obvious gaps for the domain.

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Generic MCP server that exposes Markdown documentation to LLMs, enabling them to search and answer questions about any software documentation.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides semantic search over markdown documentation using RAG, allowing natural language queries and integration with MCP clients.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for structured document management of markdown and YAML files, with RBAC, git-based approval workflows, and semantic search, enabling agents to read, edit, and maintain documents under governance.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for documentation search that automatically indexes web documentation sites and provides semantic, full-text, or hybrid search capabilities.
    14
    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/rfbatista/document-manager-mcp'

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