Company API MCP Server Template
A template for creating Model Context Protocol (MCP) servers that integrate with your company's API using FastMCP.
Overview
This template provides a starting point for building MCP servers that can interact with your company's REST API. It includes:
- Authentication handling (Bearer token)
- Error handling and logging
- Example tools for common API operations
- Environment variable configuration
- Proper async/await patterns
Setup
Clone this repository
Install dependencies:
pip install -e .
Set environment variables:
export API_BASE_URL="https://your-api.example.com" export API_KEY="your-api-key-here"
Configuration
The server can be configured using environment variables:
API_BASE_URL
: Base URL of your company's APIAPI_KEY
: API key for authentication
Usage
Running the server
python server.py
Available Tools
The template includes two example tools:
- get_user_info(user_id): Retrieve user information by ID
- search_items(query, limit): Search for items with optional limit
Customization
To adapt this template for your API:
- Update the
API_BASE_URL
and authentication method inserver.py
- Modify the existing tools or add new ones based on your API endpoints
- Update the response formatting to match your API's data structure
- Add any additional error handling specific to your API
Example Tools Implementation
@mcp.tool()
async def your_custom_tool(param: str) -> str:
"""Description of what your tool does.
Args:
param: Description of the parameter
"""
data = await make_api_request(f"your-endpoint/{param}")
if not data or "error" in data:
return "Error message"
# Format and return your data
return formatted_response
MCP Integration
To use this server with an MCP client, add it to your MCP configuration:
{
"mcpServers": {
"company-api": {
"command": "python",
"args": ["/path/to/server.py"],
"env": {
"API_BASE_URL": "https://your-api.example.com",
"API_KEY": "your-api-key"
}
}
}
}
Development
Project Structure
.
├── server.py # Main MCP server implementation
├── main.py # Simple CLI entry point
├── pyproject.toml # Project configuration
├── README.md # This file
└── .gitignore # Git ignore rules
Adding New Tools
- Define your tool function with the
@mcp.tool()
decorator - Use
make_api_request()
to call your API - Handle errors appropriately
- Format the response for the user
License
[Add your license here]
Contributing
[Add contribution guidelines here]