MCP Server Framework
Click on "Install 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., "@MCP Server Frameworklist the files in the current directory"
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.
MCP Server Framework
A general-purpose Model Context Protocol (MCP) server that provides tools for Claude Code and Claude Desktop.
Quick Start
# Install dependencies
cd mcp-server
pip install -r requirements.txt
# Test the server runs (Ctrl+C to stop)
PYTHONPATH=src python -m mcp_server.serverProject Structure
mcp-server/
├── src/mcp_server/
│ ├── server.py # Main FastMCP server
│ ├── config.py # Environment-based configuration
│ └── tools/
│ ├── __init__.py # Tool registry
│ ├── echo_tool.py # Example: basic echo tools
│ ├── datetime_tool.py # Example: date/time utilities
│ └── file_tool.py # Example: file operations
├── configs/ # Client configuration templates
└── requirements.txtConfiguration
The server is configured via environment variables:
Variable | Description | Default |
| Display name for the server |
|
| Logging level (DEBUG, INFO, WARNING, ERROR) |
|
| Comma-separated paths for file tools | (none) |
| Custom variables accessible via config | (none) |
Included Tools
Echo Tools
echo- Echo back a messageecho_uppercase- Echo in uppercaseecho_reverse- Echo reversed
DateTime Tools
get_current_time- Get current UTC timeget_timestamp- Get current Unix timestampparse_timestamp- Convert timestamp to readable formattime_difference- Calculate time between two timestamps
File Tools (requires MCP_ALLOWED_PATHS)
list_directory- List directory contentsread_file- Read file contentsget_file_info- Get file/directory metadataget_allowed_paths- Show configured allowed paths
Setting Up Clients
Claude Desktop
Open
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)Add your server configuration:
{
"mcpServers": {
"my-mcp-server": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "/full/path/to/mcp-server",
"env": {
"PYTHONPATH": "/full/path/to/mcp-server/src",
"MCP_ALLOWED_PATHS": "/Users/you/Documents"
}
}
}
}Restart Claude Desktop completely (Cmd+Q, then relaunch)
Claude Code
Create .mcp.json in your project root:
{
"mcpServers": {
"my-mcp-server": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "${workspaceFolder}/mcp-server",
"env": {
"PYTHONPATH": "${workspaceFolder}/mcp-server/src",
"MCP_ALLOWED_PATHS": "${workspaceFolder}"
}
}
}
}Adding New Tools
Create a new file in
src/mcp_server/tools/:
# src/mcp_server/tools/my_tool.py
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mcp.server.fastmcp import FastMCP
from ..config import ServerConfig
def register(mcp: "FastMCP", config: "ServerConfig") -> None:
"""Register my tools with the server."""
@mcp.tool()
def my_function(param: str, count: int = 1) -> str:
"""
Description shown to Claude.
Args:
param: What this parameter does
count: Optional count with default
Returns:
What the tool returns
"""
return f"Result: {param} x {count}"Register it in
src/mcp_server/tools/__init__.py:
def register_all_tools(mcp: "FastMCP", config: "ServerConfig") -> None:
from . import echo_tool, datetime_tool, file_tool, my_tool # Add import
echo_tool.register(mcp, config)
datetime_tool.register(mcp, config)
file_tool.register(mcp, config)
my_tool.register(mcp, config) # Add registrationRestart Claude Desktop/Code to pick up the new tool.
Tool Design Guidelines
Clear docstrings: The description and parameter docs are sent to Claude
Type hints: All parameters and returns need type hints (defines the JSON schema)
Return strings: Tools should return string results for best compatibility
Error handling: Return user-friendly error messages rather than raising exceptions
Use config: Access
configfor environment-specific settings (like allowed paths)
Troubleshooting
Server won't start:
Ensure
PYTHONPATHincludes thesrcdirectoryCheck that
mcppackage is installed:pip install mcp[cli]
Tools not appearing in Claude:
Verify the config JSON is valid
Check the
cwdpath is correctRestart Claude Desktop completely (Cmd+Q on Mac)
File tools return "not in allowed directories":
Set
MCP_ALLOWED_PATHSto comma-separated directory pathsPaths must be absolute
Dependencies
Python 3.10+
mcp[cli]>=1.0.0
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tim-akkio/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server