Simple Model Context Protocol (MCP) Server
A simple MCP server that provides basic utility tools for text manipulation, file operations, and calculations. This server can be connected to Claude AI desktop app to extend its capabilities.
Features
Available Tools:
- echo: Echo back any text you provide
- calculate: Perform basic mathematical calculations
- word_count: Count words, characters, and lines in text
- reverse_text: Reverse any text string
- uppercase: Convert text to uppercase
- list_files: List files and directories
- get_system_info: Get basic system information
Quick Setup
- Run the setup script:
./setup.sh
- Or manual setup:
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
Connecting to Claude AI Desktop App
Step 1: Locate Claude Configuration Directory
The configuration file location depends on your operating system:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Update Claude Configuration
- Find or create the configuration file at the location above
- Add the MCP server configuration:
{
"mcpServers": {
"simple-mcp-server": {
"command": "/Users/Projects/MCP/venv/bin/python",
"args": ["/Users/Projects/MCP/server.py"],
"env": {}
}
}
}
Important: Replace /Users/Projects/MCP/server.py with the actual absolute path to your server.py file.
Step 3: Restart Claude Desktop App
Close and restart the Claude desktop application completely.
Step 4: Test the Connection
- Open Claude desktop app
- In a new conversation, you should see MCP tools available
- Try asking Claude to use one of the tools, for example:
- "Can you calculate 15 * 23 for me?"
- "Please count the words in this text: 'Hello world this is a test'"
- "List the files in the current directory"
Testing the Server Manually
You can test the server directly:
# Activate virtual environment
source venv/bin/activate
# Run the server (it will wait for input)
python server.py
The server communicates via stdio (standard input/output) using JSON-RPC protocol.
Troubleshooting
Common Issues:
- "Import mcp could not be resolved"
- Make sure you've installed the requirements:
pip install -r requirements.txt - Activate your virtual environment:
source venv/bin/activate
- Claude doesn't show MCP tools
- Check that the path in
claude_desktop_config.jsonis absolute and correct - Ensure Claude desktop app was completely restarted
- Check Claude's logs for any error messages
- Server won't start
- Ensure Python 3.7+ is installed
- Check that all dependencies are installed
- Try running the setup script again
Configuration Example for Different Setups:
If using conda environment: ``json { "mcpServers": { "simple-mcp-server": { "command": "conda", "args": ["run", "-n", "your_env_name", "python", "/full/path/to/server.py"], "env": {} } } } ``
If using system Python: ``json { "mcpServers": { "simple-mcp-server": { "command": "/usr/bin/python3", "args": ["/full/path/to/server.py"], "env": {} } } } ``
Extending the Server
To add new tools:
- Add a new
Tooldefinition in thelist_tools()function - Add the corresponding handler in the
call_tool()function - Restart the server and Claude desktop app
Example Usage in Claude
Once connected, you can ask Claude to:
- "Calculate the square root of 144"
- "Count words in this paragraph: [your text]"
- "Convert this text to uppercase: hello world"
- "Show me what files are in my home directory"
- "What's my system information?"
File Structure
MCP/
├── server.py # Main MCP server code
├── requirements.txt # Python dependencies
├── setup.sh # Setup script
├── claude_desktop_config.json # Example Claude config
├── README.md # This file
└── venv/ # Virtual environment (created by setup)
Security Note
This server includes a basic calculate function that uses Python's eval(). In a production environment, you should replace this with a safer mathematical expression parser.
License
This project is provided as-is for educational and development purposes.











