Skip to main content

MCP Tools API Reference

DocuMCP provides a comprehensive set of tools via the Model Context Protocol (MCP). These tools enable intelligent documentation deployment through repository analysis, SSG recommendations, and automated GitHub Pages setup.

Implementation Details

DocuMCP implements the MCP protocol using the low-level Server class from @modelcontextprotocol/sdk/server/index.js with StdioServerTransport for process-based communication. Tools are registered manually using setRequestHandler with CallToolRequestSchema and ListToolsRequestSchema, providing full control over tool execution and response formatting.

Core Documentation Tools

analyze_repository

Description: Analyze repository structure, dependencies, and documentation needs

Parameters:

  • path (string, required): Path to the repository to analyze
  • depth (enum, optional): Analysis depth level
    • "quick": Fast overview focusing on basic structure
    • "standard": Comprehensive analysis (default)
    • "deep": Detailed analysis with advanced insights

Returns: Analysis object containing:

  • id: Unique analysis identifier for use in other tools
  • timestamp: Analysis execution time
  • structure: File counts, languages, and project features
  • dependencies: Package ecosystem and dependency analysis
  • documentation: Existing documentation assessment
  • recommendations: Project classification and team size estimates

Example:

{
"path": "/path/to/repository",
"depth": "standard"
}

recommend_ssg

Description: Recommend the best static site generator based on project analysis

Parameters:

  • analysisId (string, required): ID from previous repository analysis
  • preferences (object, optional):
    • priority: "simplicity", "features", or "performance"
    • ecosystem: "javascript", "python", "ruby", "go", or "any"

Returns: Recommendation object with weighted scoring and justifications

Example:

{
"analysisId": "analysis_abc123",
"preferences": {
"priority": "simplicity",
"ecosystem": "javascript"
}
}

generate_config

Description: Generate configuration files for the selected static site generator

Parameters:

  • ssg (enum, required): "jekyll", "hugo", "docusaurus", "mkdocs", or "eleventy"
  • projectName (string, required): Name of the project
  • projectDescription (string, optional): Brief description
  • outputPath (string, required): Where to generate config files

Returns: Generated configuration files and setup instructions

Example:

{
"ssg": "hugo",
"projectName": "My Documentation Site",
"outputPath": "./docs"
}

setup_structure

Description: Create Diataxis-compliant documentation structure

Parameters:

  • path (string, required): Root path for documentation
  • ssg (enum, required): Static site generator type
  • includeExamples (boolean, optional, default: true): Include example content

Returns: Created directory structure following Diataxis framework:

  • tutorials/: Learning-oriented guides for skill acquisition (study context)
  • how-to/: Problem-solving guides for specific tasks (work context)
  • reference/: Information-oriented content for lookup and verification (information context)
  • explanation/: Understanding-oriented content for context and background (understanding context)

Example:

{
"path": "./docs",
"ssg": "mkdocs",
"includeExamples": true
}

deploy_pages

Description: Set up GitHub Pages deployment workflow

Parameters:

  • repository (string, required): Repository path or URL
  • ssg (enum, required): Static site generator type
  • branch (string, optional, default: "gh-pages"): Deployment branch
  • customDomain (string, optional): Custom domain name

Returns: GitHub Actions workflow files for automated deployment

Example:

{
"repository": "username/repository",
"ssg": "docusaurus",
"customDomain": "docs.example.com"
}

verify_deployment

Description: Verify and troubleshoot GitHub Pages deployment

Parameters:

  • repository (string, required): Repository path or URL
  • url (string, optional): Expected deployment URL

Returns: Deployment status and troubleshooting recommendations

Example:

{
"repository": "username/repository",
"url": "https://username.github.io/repository"
}

Content Management Tools

populate_diataxis_content

Description: Intelligently populate Diataxis documentation with project-specific content

Parameters:

  • analysisId (string, required): Repository analysis ID
  • docsPath (string, required): Path to documentation directory
  • populationLevel (enum, optional, default: "comprehensive"): Content generation level
  • includeProjectSpecific (boolean, optional, default: true): Include project-specific content
  • preserveExisting (boolean, optional, default: true): Preserve existing content
  • technologyFocus (array of strings, optional): Specific technologies to emphasize

Returns: Populated content metrics and file creation summary

update_existing_documentation

Description: Intelligently analyze and update existing documentation using memory insights

Parameters:

  • analysisId (string, required): Repository analysis ID
  • docsPath (string, required): Path to existing documentation directory
  • compareMode (enum, optional, default: "comprehensive"): Comparison mode
  • updateStrategy (enum, optional, default: "moderate"): Update aggressiveness
  • preserveStyle (boolean, optional, default: true): Preserve existing style
  • focusAreas (array of strings, optional): Specific areas to focus on

Returns: Update recommendations and gap analysis

detect_documentation_gaps

Description: Analyze repository and existing documentation to identify missing content

Parameters:

  • repositoryPath (string, required): Path to the repository
  • documentationPath (string, optional): Path to existing documentation
  • analysisId (string, optional): Optional existing analysis ID to reuse
  • depth (enum, optional, default: "standard"): Analysis depth

Returns: Identified gaps and recommendations for improvement

Validation Tools

validate_diataxis_content

Description: Validate the accuracy, completeness, and compliance of generated Diataxis documentation

Parameters:

  • contentPath (string, required): Path to documentation directory to validate
  • analysisId (string, optional): Repository analysis ID for context
  • validationType (enum, optional, default: "all"): Type of validation
  • includeCodeValidation (boolean, optional, default: true): Validate code examples
  • confidence (enum, optional, default: "moderate"): Validation confidence level

Returns: Validation results with issues, recommendations, and confidence scores

validate_content

Description: Validate general content quality including links and code syntax

Parameters:

  • contentPath (string, required): Path to content directory
  • validationType (string, optional, default: "all"): Validation type
  • includeCodeValidation (boolean, optional, default: true): Validate code blocks
  • followExternalLinks (boolean, optional, default: false): Check external URLs

Returns: Content validation results with broken links and code errors

Description: Comprehensive link checking for documentation deployment

Parameters:

  • documentation_path (string, optional, default: "./docs"): Documentation directory
  • check_external_links (boolean, optional, default: true): Validate external URLs
  • check_internal_links (boolean, optional, default: true): Validate internal references
  • check_anchor_links (boolean, optional, default: true): Validate anchor links
  • timeout_ms (number, optional, default: 5000): Request timeout
  • max_concurrent_checks (number, optional, default: 5): Concurrent check limit

Returns: Comprehensive link validation report

Testing and Deployment Tools

test_local_deployment

Description: Test documentation build and local server before deploying to GitHub Pages

Parameters:

  • repositoryPath (string, required): Path to the repository
  • ssg (enum, required): Static site generator type
  • port (number, optional, default: 3000): Local server port
  • timeout (number, optional, default: 60): Build timeout in seconds
  • skipBuild (boolean, optional, default: false): Skip build step

Returns: Local testing results and server status

README Management Tools

evaluate_readme_health

Description: Evaluate README files for community health and onboarding effectiveness

Parameters:

  • readme_path (string, required): Path to README file
  • project_type (enum, optional, default: "community_library"): Project type
  • repository_path (string, optional): Repository path for context

Returns: Health evaluation with scores and recommendations

readme_best_practices

Description: Analyze README files against best practices checklist

Parameters:

  • readme_path (string, required): Path to README file
  • project_type (enum, optional, default: "library"): Project type
  • generate_template (boolean, optional, default: false): Generate templates
  • target_audience (enum, optional, default: "mixed"): Target audience

Returns: Best practices analysis and improvement recommendations

generate_readme_template

Description: Generate standardized README templates for different project types

Parameters:

  • projectName (string, required): Name of the project
  • description (string, required): Brief project description
  • templateType (enum, required): Project template type
  • author (string, optional): Project author/organization
  • license (string, optional, default: "MIT"): Project license
  • outputPath (string, optional): Output file path

Returns: Generated README template content

validate_readme_checklist

Description: Validate README files against community best practices checklist

Parameters:

  • readmePath (string, required): Path to README file
  • projectPath (string, optional): Project directory for context
  • strict (boolean, optional, default: false): Use strict validation
  • outputFormat (enum, optional, default: "console"): Output format

Returns: Validation report with detailed scoring

analyze_readme

Description: Comprehensive README analysis with length assessment and optimization opportunities

Parameters:

  • project_path (string, required): Path to project directory
  • target_audience (enum, optional, default: "community_contributors"): Target audience
  • optimization_level (enum, optional, default: "moderate"): Optimization level
  • max_length_target (number, optional, default: 300): Target max length

Returns: README analysis with optimization recommendations

optimize_readme

Description: Optimize README content by restructuring and condensing

Parameters:

  • readme_path (string, required): Path to README file
  • strategy (enum, optional, default: "community_focused"): Optimization strategy
  • max_length (number, optional, default: 300): Target maximum length
  • include_tldr (boolean, optional, default: true): Include TL;DR section
  • create_docs_directory (boolean, optional, default: true): Create docs directory

Returns: Optimized README content and extracted documentation

Documentation Freshness Tracking Tools

DocuMCP includes comprehensive tools for tracking and managing documentation freshness, ensuring your documentation stays up-to-date and identifying files that need attention.

track_documentation_freshness

Description: Scan documentation directory for staleness markers and identify files needing updates based on configurable time thresholds (minutes, hours, days)

Parameters:

  • docsPath (string, required): Path to documentation directory
  • projectPath (string, optional): Path to project root (for knowledge graph tracking)
  • warningThreshold (object, optional): Warning threshold (yellow flag)
    • value (number, positive): Threshold value
    • unit (enum): "minutes", "hours", or "days"
  • staleThreshold (object, optional): Stale threshold (orange flag)
    • value (number, positive): Threshold value
    • unit (enum): "minutes", "hours", or "days"
  • criticalThreshold (object, optional): Critical threshold (red flag)
    • value (number, positive): Threshold value
    • unit (enum): "minutes", "hours", or "days"
  • preset (enum, optional): Use predefined threshold preset
    • Options: "realtime", "active", "recent", "weekly", "monthly", "quarterly"
  • includeFileList (boolean, optional, default: true): Include detailed file list in response
  • sortBy (enum, optional, default: "staleness"): Sort order for file list
    • Options: "age", "path", "staleness"
  • storeInKG (boolean, optional, default: true): Store tracking event in knowledge graph for historical analysis

Returns: Freshness report with:

  • Summary statistics (total files, fresh, warning, stale, critical)
  • Detailed file list with staleness levels
  • Age information for each file
  • Recommendations for action

Example:

{
"docsPath": "/path/to/docs",
"preset": "monthly",
"includeFileList": true
}

Default Thresholds:

  • Warning: 7 days
  • Stale: 30 days
  • Critical: 90 days

validate_documentation_freshness

Description: Validate documentation freshness, initialize metadata for files without it, and update timestamps based on code changes

Parameters:

  • docsPath (string, required): Path to documentation directory
  • projectPath (string, required): Path to project root (for git integration)
  • initializeMissing (boolean, optional, default: true): Initialize metadata for files without it
  • updateExisting (boolean, optional, default: false): Update last_validated timestamp for all files
  • updateFrequency (enum, optional, default: "monthly"): Default update frequency for new metadata
    • Options: "realtime", "active", "recent", "weekly", "monthly", "quarterly"
  • validateAgainstGit (boolean, optional, default: true): Validate against current git commit

Returns: Validation report with:

  • Files initialized (new metadata created)
  • Files updated (existing metadata refreshed)
  • Metadata structure for each file
  • Recommendations for next steps

Example:

{
"docsPath": "/path/to/docs",
"projectPath": "/path/to/project",
"initializeMissing": true,
"validateAgainstGit": true
}

Use Cases:

  • First-time setup: Initialize freshness metadata for all documentation files
  • Regular maintenance: Update validation timestamps
  • After code changes: Sync documentation freshness with git history

Sitemap Management Tools

manage_sitemap

Description: Generate, validate, and manage sitemap.xml as the source of truth for documentation links. Sitemap.xml is used for SEO, search engine submission, and deployment tracking.

Parameters:

  • action (enum, required): Action to perform
    • "generate": Create new sitemap.xml
    • "validate": Check sitemap structure
    • "update": Sync sitemap with documentation
    • "list": Show all URLs in sitemap
  • docsPath (string, required): Path to documentation root directory
  • baseUrl (string, required for generate/update): Base URL for the site (e.g., https://user.github.io/repo)
  • includePatterns (array, optional): File patterns to include
    • Default: ["**/*.md", "**/*.html", "**/*.mdx"]
  • excludePatterns (array, optional): File patterns to exclude
    • Default: ["node_modules", ".git", "dist", "build", ".documcp"]
  • updateFrequency (enum, optional): Default change frequency for pages
    • Options: "always", "hourly", "daily", "weekly", "monthly", "yearly", "never"
  • useGitHistory (boolean, optional, default: true): Use git history for last modified dates
  • sitemapPath (string, optional): Custom path for sitemap.xml (default: docsPath/sitemap.xml)

Returns: Sitemap operation result with:

  • Generated/validated sitemap structure
  • URL count and statistics
  • Validation errors (if any)
  • Recommendations for SEO optimization

Example:

{
"action": "generate",
"docsPath": "/path/to/docs",
"baseUrl": "https://example.com/docs"
}

Use Cases:

  • SEO optimization: Generate sitemap for search engines
  • Link validation: Ensure all documentation pages are discoverable
  • Deployment tracking: Monitor documentation changes over time

User Preferences & Analytics Tools

manage_preferences

Description: Manage user preferences for personalized recommendations

Parameters:

  • action (enum, required): Action to perform
    • "get": Retrieve current preferences
    • "update": Update preferences
    • "reset": Reset to defaults
    • "export": Export preferences as JSON
    • "import": Import preferences from JSON
    • "recommendations": Get SSG recommendations based on preferences
  • userId (string, optional, default: "default"): User ID for multi-user setups
  • preferences (object, optional): Preference updates (for update action)
    • preferredSSGs (array, optional): List of preferred static site generators
    • documentationStyle (enum, optional): "minimal", "comprehensive", or "tutorial-heavy"
    • expertiseLevel (enum, optional): "beginner", "intermediate", or "advanced"
    • preferredTechnologies (array, optional): Preferred technologies and frameworks
    • preferredDiataxisCategories (array, optional): Preferred documentation categories
    • autoApplyPreferences (boolean, optional): Automatically apply preferences to recommendations
  • json (string, optional): JSON string for import action

Returns: Preference data or operation result

Example:

{
"action": "get",
"userId": "user123"
}

analyze_deployments

Description: Analyze deployment patterns and generate insights

Parameters:

  • analysisType (enum, optional, default: "full_report"): Type of analysis
    • "full_report": Comprehensive analysis
    • "ssg_stats": Per-SSG statistics
    • "compare": Compare multiple SSGs
    • "health": Deployment health score
    • "trends": Temporal analysis
  • ssg (string, optional): SSG name for ssg_stats analysis
  • ssgs (array, optional): Array of SSG names for comparison
  • periodDays (number, optional, default: 30): Period in days for trend analysis

Returns: Analytics report with deployment insights

Example:

{
"analysisType": "full_report"
}

Memory System Tools

The memory system provides intelligent learning and pattern recognition across documentation projects.

memory_recall

Description: Recall memories about a project or topic

Parameters:

  • query (string, required): Search query or project ID
  • type (enum, optional): Memory type to recall
  • limit (number, optional, default: 10): Maximum results

memory_insights

Description: Get insights and patterns from memory

Parameters:

  • projectId (string, optional): Project ID to analyze
  • timeRange (object, optional): Time range for analysis

memory_similar

Description: Find similar projects from memory

Parameters:

  • analysisId (string, required): Analysis ID to find similar projects for
  • limit (number, optional, default: 5): Maximum similar projects

memory_export

Description: Export memories to JSON or CSV

Parameters:

  • filter (object, optional): Filter memories to export
  • format (enum, optional, default: "json"): Export format

memory_cleanup

Description: Clean up old memories

Parameters:

  • daysToKeep (number, optional, default: 30): Number of days to retain
  • dryRun (boolean, optional, default: false): Preview without deleting

Tool Chaining and Workflows

DocuMCP tools are designed to work together in workflows:

  1. Analysis → Recommendation → Implementation:

    analyze_repository → recommend_ssg → generate_config → setup_structure → deploy_pages
  2. Content Management:

    analyze_repository → populate_diataxis_content → validate_diataxis_content
  3. Documentation Maintenance:

    detect_documentation_gaps → update_existing_documentation → validate_content
  4. Freshness Tracking:

    validate_documentation_freshness → track_documentation_freshness → (update files as needed)
  5. SEO and Sitemap Management:

    manage_sitemap (generate) → deploy_pages → manage_sitemap (validate)

Error Handling

All tools return structured responses with error information when failures occur:

{
"content": [
{
"type": "text",
"text": "Error executing tool_name: error_message"
}
],
"isError": true
}

Resource Storage

Tool results are automatically stored as MCP resources with URIs like:

  • documcp://analysis/{id}: Analysis results
  • documcp://config/{ssg}/{id}: Configuration files
  • documcp://deployment/{id}: Deployment workflows

These resources can be accessed later for reference or further processing.

Version Information

Current DocuMCP version: 0.5.2

For the latest updates and detailed changelog, see the project repository.

Recent Additions (v0.5.2)

Documentation Freshness Tracking

  • track_documentation_freshness: Monitor documentation staleness with configurable thresholds
  • validate_documentation_freshness: Initialize and update freshness metadata

Sitemap Management

  • manage_sitemap: Generate, validate, and manage sitemap.xml for SEO and deployment tracking

These tools integrate with the knowledge graph system to provide historical analysis and intelligent recommendations.