Cryptocurrency Price Service
Provides real-time cryptocurrency price information using the CoinMarketCap API.
Python Server MCP - Cryptocurrency Price Service
This project implements an MCP (Model Context Protocol) server that provides cryptocurrency price information. The server is built using Python and the MCP framework to create an API that can be consumed by different clients.
Docker
Docker build:
docker build -t mcp/python-server-mcp -f Dockerfile .
Add the following to your mcp.json file:
{
"mcpServers": {
"python-server-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"8000:8000",
"-e",
"ENVIRONMENT",
"-e",
"COINMARKETCAP_API_KEY",
"mcp/python-server-mcp"
],
"env": {
"ENVIRONMENT": "PRODUCTION",
"COINMARKETCAP_API_KEY": "your-api-key",
}
}
}
}
Features
- Real-time cryptocurrency price retrieval
- Environment-based configuration (development, production, staging, local)
- CoinMarketCap API integration
- Docker container deployment
Requirements
- Python 3.12+
- uv (package and virtual environment manager)
- Docker (optional, for container execution)
Installation
Using uv (recommended)
# Clone the repository
git clone <repository-url>
cd PythonServerMcp
Create and activate virtual environment with uv
uv venv
source .venv/bin/activate
Install dependencies
uv sync
Configuration
- Create a
.envfile in the project root with the following variables:
ENVIRONMENT=DEV # Options: LOCAL, DEV, STAGING, PROD
COINMARKETCAP_API_KEY=your_api_key_here
- You can also create specific environment files for each environment:
.dev.env- For development environment.staging.env- For staging environment.prod.env- For production environment
Usage
Local Execution
python main.py
This will start the MCP server that will listen for requests through standard input/output (stdio).
Using Docker
# Build the image
docker build -t test-mcp -f Dockerfile --platform linux/amd64 .
# Run the container
docker run -it test-mcp
Project Structure
.
├── main.py
└── src
├── __init__.py
├── core
│ ├── common
│ │ ├── crypto_schema.py
│ │ └── schema.py
│ ├── config.py
│ ├── settings
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── development.py
│ │ ├── environment.py
│ │ ├── local.py
│ │ ├── production.py
│ │ └── staging.py
│ └── utils
│ ├── datetime.py
│ ├── extended_enum.py
│ ├── filename_generator.py
│ ├── passwords.py
│ ├── query_utils.py
│ └── redis.py
├── mcp_server.py
├── resources
│ ├── __init__.py
│ └── coinmarketcap_resource.py
├── server.py
├── services
│ ├── __init__.py
│ └── coinmarketcap_service.py
└── tools
├── __init__.py
└── prices.py
Development
Adding New Tools to the MCP Server
To add a new tool to the MCP server, follow these steps:
- Define the function in the
src/__init__.pyfile - Register the tool in the
main()function - Document the tool with docstrings
Example:
@server.add_tool
def my_new_tool(parameter1: str, parameter2: int) -> str:
"""
Description of what the tool does.
Args:
parameter1: Description of parameter 1
parameter2: Description of parameter 2
Returns:
Description of what is returned
"""
# Tool implementation
return result
相关服务器
Google Analytics MCP Server
A structured interface for interacting with Google Analytics APIs, simplifying tasks like querying reports and managing properties.
Bybit MCP Server
Access Bybit's v5 API for real-time market data, trading operations, and account information.
Octodet Keycloak
Administer Keycloak by managing users, realms, roles, and other resources through an LLM interface.
Zuora Product Rate Plans
A remote MCP server for accessing Zuora product rate plans, deployable on Cloudflare Workers.
Discord MCP
A MCP Server for Interacting with Discord Servers
MCP OpenVision
Image analysis using OpenRouter's vision models.
CData PingOne
A read-only MCP server that allows LLMs to query live PingOne data. Requires a separate CData JDBC Driver for PingOne.
Kubernetes
Interact with Kubernetes clusters using natural language to manage and query resources.
Alibaba Cloud Ops
Integrates with Alibaba Cloud APIs to manage resources like ECS, Cloud Monitor, and OOS.
soundside.ai
MCP-native AI media generation with x402 pay-per-call. Image, video, audio, and music from 6 providers — composable via resource IDs. USDC on Base.
