Skip to content

Ever been told to RTFM only to find there is no FM to R? MCP-RTFM helps you CREATE the F*ing Manual that people keep telling everyone to read! Transform your non-existent or unreadable docs into an intelligent, searchable knowledge base that actually answers those 'basic questions' before they're asked.

Notifications You must be signed in to change notification settings

ryanjoachim/mcp-rtfm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MCP-RTFM

TypeScript MCP License: MIT

"RTFM!" they say, but what if there's no FM to R? πŸ€” Enter MCP-RTFM: an MCP server that helps you create the F*ing Manual everyone keeps telling people to read! Using advanced content analysis, metadata generation, and intelligent search capabilities, it transforms your non-existent or unreadable docs into an interconnected knowledge base that actually answers those "basic questions" before they're asked.

Plot twist: Instead of just telling people to RTFM, now you can actually give them an FM worth R-ing! Because the best response to "read the f*ing manual" is having a manual that's actually worth reading. πŸ“šβœ¨

πŸ“š Table of Contents

πŸš€ Quick Start

# Install dependencies
npm install

# Build the server
npm run build

# Add to your MCP settings and start using
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "analyze_project_with_metadata", // Enhanced initialization
  args: { projectPath: "/path/to/project" }
});

// This will:
// 1. Create documentation structure
// 2. Analyze content with unified/remark
// 3. Generate intelligent metadata
// 4. Build search index with minisearch
// 5. Add structured front matter
// 6. Make your docs actually readable!

✨ Features

Documentation Management Tools

  • analyze_existing_docs - Analyze and enhance existing documentation with content analysis and metadata
  • analyze_project_with_metadata - Initialize documentation structure with enhanced content analysis and metadata generation
  • analyze_project - Basic initialization of documentation structure
  • read_doc - Read a documentation file (required before updating)
  • update_doc - Update documentation using diff-based changes
  • get_doc_content - Get current content of a documentation file
  • get_project_info - Get project structure and documentation status
  • search_docs - Search across documentation files with highlighted results
  • update_metadata - Update documentation metadata
  • get_related_docs - Find related documentation based on metadata and content links
  • customize_template - Create or update documentation templates

Default Documentation Files

The server automatically creates and manages these core documentation files:

  • techStack.md - Detailed inventory of tools, libraries, and configurations
  • codebaseDetails.md - Low-level explanations of code structure and logic
  • workflowDetails.md - Step-by-step workflows for key processes
  • integrationGuides.md - Instructions for external system connections
  • errorHandling.md - Troubleshooting strategies and practices
  • handoff_notes.md - Summary of key themes and next steps

Documentation Templates

Built-in templates for different documentation types:

  • Standard Documentation Template
  • API Documentation Template
  • Workflow Documentation Template

Custom templates can be created using the customize_template tool.

πŸ“ Example Workflows

1. Analyzing Existing Documentation

// Enhance existing documentation with advanced analysis
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "analyze_existing_docs",
  args: { projectPath: "/path/to/project" }
});

// This will:
// - Find all markdown files in .handoff_docs
// - Analyze content structure with unified/remark
// - Generate intelligent metadata
// - Build search index
// - Add front matter if not present
// - Establish document relationships
// - Preserve existing content

// The results include:
// - Enhanced metadata for all docs
// - Search index population
// - Content relationship mapping
// - Git context if available

2. Enhanced Project Documentation Setup

// Initialize documentation with advanced content analysis
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "analyze_project_with_metadata",
  args: { projectPath: "/path/to/project" }
});

// Results include:
// - Initialized documentation files
// - Generated metadata from content analysis
// - Established document relationships
// - Populated search index
// - Added structured front matter
// - Git repository context

// Get enhanced project information
const projectInfo = await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "get_project_info",
  args: { projectPath: "/path/to/project" }
});

// Search across documentation with intelligent results
const searchResults = await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "search_docs",
  args: {
    projectPath: "/path/to/project",
    query: "authentication"
  }
});

// Results include:
// - Weighted matches (title matches prioritized)
// - Fuzzy search results
// - Full content context
// - Related document suggestions

3. Updating Documentation with Content Links

// First read the document
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "read_doc",
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md"
  }
});

// Update with content that links to other docs
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "update_doc",
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md",
    searchContent: "[Why this domain is critical to the project]",
    replaceContent: "The tech stack documentation provides essential context for development. See [[workflowDetails]] for implementation steps.",
    continueToNext: true // Automatically move to next document
  }
});

4. Managing Documentation Metadata

// Update metadata for better organization
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "update_metadata",
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md",
    metadata: {
      title: "Technology Stack Overview",
      category: "architecture",
      tags: ["infrastructure", "dependencies", "configuration"]
    }
  }
});

// Find related documentation
const related = await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "get_related_docs",
  args: {
    projectPath: "/path/to/project",
    docFile: "techStack.md"
  }
});

5. Searching Documentation with Context

// Search with highlighted results
const results = await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "search_docs",
  args: {
    projectPath: "/path/to/project",
    query: "authentication"
  }
});

// Results include:
// - File name
// - Line numbers
// - Highlighted matches
// - Context around matches

6. Creating Custom Templates

// Create a custom template for architecture decisions
await use_mcp_tool({
  server: "mcp-rtfm",
  tool: "customize_template",
  args: {
    templateName: "architecture-decision",
    content: `# {title}

## Context
[Background and context for the decision]

## Decision
[The architecture decision made]

## Consequences
[Impact and trade-offs of the decision]

## Related Decisions
[Links to related architecture decisions]`,
    metadata: {
      category: "architecture",
      tags: ["decision-record", "design"]
    }
  }
});

πŸ”§ Installation

VSCode (Roo Cline)

Add to settings file at: Add to settings file at:

  • Windows: %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json
  • MacOS: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
  • Linux: ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
{
  "mcpServers": {
    "mcp-rtfm": {
      "command": "node",
      "args": ["<path-to-mcp-rtfm>/build/index.js"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

Claude Desktop

Add to config file at:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-rtfm": {
      "command": "node",
      "args": ["<path-to-mcp-rtfm>/build/index.js"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

🎯 Advanced Features

Content Linking

Use [[document-name]] syntax to create links between documents. The server automatically tracks these relationships and includes them when finding related documentation.

Metadata-Driven Organization

Documents are organized using:

  • Categories (e.g., "architecture", "api", "workflow")
  • Tags for flexible grouping
  • Automatic relationship discovery based on shared metadata
  • Content link analysis

Enhanced Content Analysis

The server uses advanced libraries for better documentation management:

  • unified/remark for Markdown processing:

    • AST-based content analysis
    • Accurate heading structure detection
    • Code block and link extraction
    • Proper Markdown parsing and manipulation
  • minisearch for powerful search capabilities:

    • Fast fuzzy searching across all documentation
    • Field-weighted search (titles given higher priority)
    • Full content and metadata indexing
    • Efficient caching with TTL management
    • Real-time search index updates

Intelligent Metadata Generation

  • Automatic content analysis for categorization
  • Smart tag generation based on content patterns
  • Structured front matter in documents
  • AST-based title and section detection
  • Code snippet identification and tagging
  • Context-aware result presentation

Template System

  • Built-in templates for common documentation types
  • Custom template support with metadata defaults
  • Template inheritance and override capabilities
  • Placeholder system for consistent formatting

πŸ› οΈ Development

# Install dependencies
npm install

# Build the server
npm run build

# Development with auto-rebuild
npm run watch

πŸ› Debugging

Since MCP servers communicate over stdio, debugging can be challenging. Use the MCP Inspector:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

πŸ“„ License

MIT Β© Model Context Protocol

About

Ever been told to RTFM only to find there is no FM to R? MCP-RTFM helps you CREATE the F*ing Manual that people keep telling everyone to read! Transform your non-existent or unreadable docs into an intelligent, searchable knowledge base that actually answers those 'basic questions' before they're asked.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published