Spec3 MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spec3 MCP Server list all available tools"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Spec3 MCP Server
A Model Context Protocol (MCP) server built with FastMCP for local development and testing with Claude Desktop on WSL.
Overview
This MCP server provides a set of tools and utilities that can be used by Claude Desktop through the MCP protocol. It's designed to run locally on your WSL machine and connect to Claude Desktop via stdio.
Related MCP server: mytool3
Features
Modern Python Project Structure: Uses
pyproject.tomland follows Python packaging best practicesFastMCP Integration: Built on the FastMCP framework for easy MCP protocol handling
Multiple Tools: Includes basic demonstration and utility tools
Comprehensive Logging: Detailed logging for debugging and monitoring
Type Hints: Full type annotation support for better development experience
WSL Compatible: Runs seamlessly on WSL and connects to Claude Desktop
Available Tools
hello_world: Returns a simple greeting message
echo_message: Echoes back a message with additional formatting
get_server_info: Returns comprehensive server information and capabilities
list_available_tools: Lists all available tools with descriptions
Installation
Prerequisites
Python 3.10 or higher
WSL (Windows Subsystem for Linux)
Claude Desktop (installed on Windows)
Setup
Navigate to the project directory:
cd /home/dhevb/workspaces/spec3-mcp-serverCreate and activate a virtual environment:
python -m venv venv source venv/bin/activateInstall the package in development mode:
pip install -e .This will install the package and all its dependencies, including FastMCP.
Verify the installation:
spec3-mcp-server --help
Connecting to Claude Desktop
Configure Claude Desktop on Windows
Locate your Claude Desktop config file:
On Windows, it's typically at:
%APPDATA%\Claude\claude_desktop_config.jsonFull path is usually:
C:\Users\YourUsername\AppData\Roaming\Claude\claude_desktop_config.json
Edit the configuration file and add the following:
{ "mcpServers": { "spec3-mcp-server": { "command": "wsl", "args": [ "-e", "/home/dhevb/workspaces/spec3-mcp-server/venv/bin/python", "/home/dhevb/workspaces/spec3-mcp-server/src/spec3_mcp_server/main.py" ], "env": {} } } }Note: The
wslcommand allows Claude Desktop on Windows to execute Python in your WSL environment.Restart Claude Desktop to load the new configuration
Verify the connection:
Open Claude Desktop
Start a new conversation
Look for the MCP tools icon or hammer icon
You should see the spec3-mcp-server tools available
Alternative: Using Installed Command
If you prefer to use the installed spec3-mcp-server command:
{
"mcpServers": {
"spec3-mcp-server": {
"command": "wsl",
"args": [
"-e",
"/home/dhevb/workspaces/spec3-mcp-server/venv/bin/spec3-mcp-server"
]
}
}
}Testing the Server
Test Locally (Without Claude Desktop)
You can test the server locally to ensure it's working:
# Activate your virtual environment
source venv/bin/activate
# Run the server directly
python src/spec3_mcp_server/main.pyThe server will start and wait for MCP messages on stdin. You can verify it's running if you see the startup logs.
Test with Claude Desktop
Once connected to Claude Desktop, you can test the tools by asking Claude to use them:
"Use the hello_world tool"
"Echo this message: Hello from WSL!"
"Get server information"
"List all available tools"
Development
Project Structure
spec3-mcp-server/
├── src/
│ └── spec3_mcp_server/
│ ├── __init__.py # Package initialization
│ ├── main.py # Main entry point
│ ├── server.py # MCP server implementation
│ └── http_server.py # HTTP server (for network access)
├── tests/ # Test files (to be added)
├── pyproject.toml # Project configuration
├── README.md # This file
├── claude_desktop_config.json # Example config for Claude Desktop
└── .gitignore # Git ignore rulesAdding New Tools
To add new tools to the MCP server:
Edit
src/spec3_mcp_server/server.pyAdd a new tool function decorated with
@mcp.tool()Add proper type hints and docstring
Example:
@mcp.tool()
async def my_new_tool(param: str) -> str:
"""
Description of what this tool does.
Args:
param: Description of the parameter
Returns:
str: Description of the return value
"""
logger.info(f"my_new_tool called with: {param}")
return f"Processed: {param}"Reinstall the package (if needed):
pip install -e .Restart Claude Desktop to load the updated tools
Code Quality
The project includes configuration for:
Black: Code formatting
isort: Import sorting
mypy: Type checking
ruff: Linting
pytest: Testing
Run quality checks:
# Format code
black src/
# Sort imports
isort src/
# Type checking
mypy src/
# Linting
ruff check src/
# Run tests (when added)
pytestTroubleshooting
Common Issues
Server won't start:
Check that Python 3.10+ is installed in WSL:
python --versionEnsure FastMCP is installed:
pip install fastmcpVerify virtual environment is activated:
which python
Claude Desktop can't connect:
Verify the paths in
claude_desktop_config.jsonare correctCheck that WSL is accessible from Windows
Look at Claude Desktop's logs for connection errors
Test the server manually in WSL first
Tools not appearing:
Restart Claude Desktop after configuration changes
Check server logs for errors
Verify the server is running:
ps aux | grep spec3-mcp-server
WSL-specific issues:
Ensure WSL is properly installed:
wsl --versionTest WSL execution from Windows CMD:
wsl -e python --versionCheck WSL distro is running:
wsl -l -v
Logging
The server includes comprehensive logging. Check the console output for:
Server startup messages
Tool execution logs
Error messages and stack traces
To see logs when running via Claude Desktop, you can redirect them to a file by modifying the config:
{
"mcpServers": {
"spec3-mcp-server": {
"command": "wsl",
"args": [
"-e",
"/bin/bash",
"-c",
"/home/dhevb/workspaces/spec3-mcp-server/venv/bin/python /home/dhevb/workspaces/spec3-mcp-server/src/spec3_mcp_server/main.py 2>> /home/dhevb/workspaces/spec3-mcp-server/mcp-server.log"
]
}
}
}Getting Help
If you encounter issues:
Check the server logs for error messages
Verify your Python and FastMCP versions
Test the server independently before connecting to Claude Desktop
Check the FastMCP documentation at https://github.com/jlowin/fastmcp
Review Claude Desktop's documentation for MCP configuration
Next Steps
Once you have the local server working:
Add more sophisticated tools for your specific use cases
Implement error handling for robust operation
Add tests to ensure reliability
Explore advanced MCP features like resources and prompts
Consider adding environment variables for configuration
License
MIT License - see LICENSE file for details.
Available Tools
3 toolsget_car_contextA
Get information about the user's 1994 BMW E36 325is Spec3 race car build.
Returns current configuration, build status, modifications, and car-specific details. Call this tool when providing personalized advice, troubleshooting, or planning modifications.
Returns: dict: Car configuration, history, and current state
Inputs: no named parameters. Returns: object
get_documentA
Retrieve full text and visual content of Spec3 racing reference documents.
Fetches complete PDF content from S3 including text and page images. Page images preserve diagrams, tables, and formatting that text extraction cannot capture.
Args: document_id: Document ID from list_documents (e.g., "spec3_rules") page_start: Starting page number (default: 1) page_end: Ending page number (default: None for all remaining pages) include_images: Include page images for diagrams/tables (default: True)
Returns: dict: Document text, page images (base64), metadata, and page range
Inputs: document_id (required), page_start, page_end, include_images. Returns: object
list_documentsA
List all available Spec3 racing reference documents.
Available documents include: Spec3 Constructor's Guide, Bentley E36 Manual, 2025 NASA CCR rules, and 2025 Spec3 class rules.
Returns: dict: Document IDs, names, and descriptions
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: get_car_context retrieves car-specific build information, list_documents lists available reference documents, and get_document fetches detailed content from those documents. The descriptions explicitly differentiate their scopes, making tool selection unambiguous.
All tools follow a consistent verb_noun pattern (get_car_context, get_document, list_documents) using snake_case throughout. The naming is predictable and readable, with verbs appropriately matched to actions (get for retrieval, list for enumeration).
Three tools is a minimal but reasonable count for a specialized server focused on Spec3 racing information. It covers core needs (car context, document listing, and document retrieval), though it might feel slightly thin if expanded functionality (e.g., update or search tools) were expected for broader use cases.
The tool set provides complete coverage for retrieving Spec3 racing information: get_car_context handles car-specific data, while list_documents and get_document manage reference documents. A minor gap exists in lacking update or modification tools for the car context, but the retrieval-focused scope is well-defined and functional for its purpose.
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA simple MCP server that enables Claude to communicate with locally running LLM models via LM Studio.9MIT
- FlicenseNot gradedqualityCmaintenanceA lightweight MCP server that bridges Claude AI with local Python execution, enabling personalized greetings and demonstrating local tool integration.-
- FlicenseNot gradedqualityDmaintenanceA simple MCP server that provides basic utility tools for text manipulation, file operations, and calculations, intended to be connected to Claude AI desktop app.-
- AlicenseNot gradedqualityDmaintenanceA local MCP server that connects Claude Desktop to execute custom local code, such as generating custom greetings.7 npmISC