An MCP server that validates content against MCP specification using semantic search and AI
An MCP Server for validating code or content against the official Model Context Protocol (MCP) specification to ensure technical accuracy and prevent the spread of misinformation.
📦 View in MCP Registry - Available in the official MCP Registry
📋 View Project Roadmap - See planned features and development progress
🏗️ Design Documentation - Technical design and implementation details
The MCP Fact-Check MCP Server helps ensure technical accuracy when coding or writing about MCP by comparing content against official specifications. It uses:
check_mcp_claim - Comprehensive validation of MCP-related content
check_mcp_quick_fact - Quick fact-checking for single MCP claims
search_spec - Searches MCP specifications using semantic similarity
list_spec_versions - Lists available MCP specification versions
migrate-mcp-content - Guides content migration between MCP specification versions
Parameters:
current_version (required): Source MCP specification version (e.g., "2024-11-05", "2025-06-18")target_version (required): Target MCP specification version to migrate to (e.g., "draft")update_scope (optional): Determines how aggressive the migration should be
critical_only: Fix only critical inaccuracies and breaking changes (minimal changes)enhancement_focused: Fix issues and improve clarity, align with best practicescomprehensive: Complete review with all improvements and enhanced claritycomprehensiveThe MCP Fact-Check server is available through the Model Context Protocol registry. Install it directly from your MCP client:
For Claude Desktop and other MCP clients:
That's it! The server will be automatically configured and ready to use.
For developers: If you need to build from source or contribute to the project, see INSTALL.md for development setup instructions.
For a beautiful, AI-focused trace visualization UI, set up Arize Phoenix:
# Install Phoenix
pipx install arize-phoenix
# Start Phoenix server
phoenix serve
{
"mcpServers": {
"mcp-factcheck": {
"command": "/path/to/bin/mcp-factcheck-server",
"args": [
"--data-dir",
"/path/to/data/embeddings",
"--telemetry",
"--otlp-endpoint",
"http://localhost:6006"
],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}
What you'll see in Phoenix:
Phoenix is specifically designed for AI/ML observability and provides a much more user-friendly experience than traditional tracing tools.
# Build all components
go build -o bin/mfc ./cmd/server
go build -o bin/specloader ./utils/cmd
# Run tests
go test ./...
The project includes pre-extracted MCP specifications and embeddings for all versions. To check when the draft specification was last updated, see data/SPEC_METADATA.json:
# View draft update information
cat data/SPEC_METADATA.json | jq '.specs.draft'
To update the draft specification:
./bin/specloader spec --version draft
./bin/specloader embed --version draft
./bin/specloader embed --version draft-fine
To add a new specification version:
./bin/specloader spec --version 2025-12-15
./bin/specloader embed --version 2025-12-15
./bin/specloader embed --version 2025-12-15-fine
All specification extraction dates and source commits are automatically tracked in data/SPEC_METADATA.json.
Test the server using the included test client:
# Build test client
go build -o bin/factcheck-curl ./cmd/factcheck-curl
# Test tools
./bin/factcheck-curl --cmd ./bin/mfc --data-dir ./data/embeddings tools/list
./bin/factcheck-curl --cmd ./bin/mfc --data-dir ./data/embeddings tools/call validate_content '{"content":"MCP is a protocol"}'
# Test prompts
./bin/factcheck-curl --cmd ./bin/mfc --data-dir ./data/embeddings prompts/list
# Get migration prompt with minimal parameters
./bin/factcheck-curl --cmd ./bin/mfc --data-dir ./data/embeddings prompts/get migrate-mcp-content '{"current_version":"2024-11-05","target_version":"draft"}'
# Get migration prompt with all parameters
./bin/factcheck-curl --cmd ./bin/mfc --data-dir ./data/embeddings prompts/get migrate-mcp-content '{
"current_version": "2024-11-05",
"target_version": "2025-06-18",
"update_scope": "critical_only"
}'
See DESIGN.md for the complete architecture documentation.
OPENAI_API_KEY - Required for embedding generation and content validationGITHUB_TOKEN - Optional, for higher GitHub API rate limits when extracting specsMIT License. See LICENSE for details.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
docker run -i --rm ghcr.io/carlisia/mcp-factcheck:v1.0.0Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-carlisia-mcp-factcheck": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/carlisia/mcp-factcheck:v1.0.0"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceghcr.io/carlisia/mcp-factcheck:v1.0.0dockerio.github.carlisia/mcp-factcheck works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.