Cryptocurrency Price Service
Fornece informações de preço de criptomoedas em tempo real usando a API do CoinMarketCap.
GitHubExperimente este MCPPatrocinado
Documentação
Servidor MCP em Python - Cryptocurrency Price Service
Este projeto implementa um servidor MCP (Model Context Protocol) que fornece informações de preços de criptomoedas. O servidor é construído usando Python e o framework MCP para criar uma API que pode ser consumida por diferentes clientes.
Docker
Docker build:
docker build -t mcp/python-server-mcp -f Dockerfile .
Adicione o seguinte ao seu arquivo mcp.json:
{
"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",
}
}
}
}
Funcionalidades
- Recuperação de preços de criptomoedas em tempo real
- Configuração baseada em ambiente (desenvolvimento, produção, staging, local)
- Integração com a API CoinMarketCap
- Implantação em contêiner Docker
Requisitos
- Python 3.12+
- uv (gerenciador de pacotes e ambiente virtual)
- Docker (opcional, para execução em contêiner)
Instalação
Usando uv (recomendado)
# Clone the repository
git clone <repository-url>
cd PythonServerMcp
Criar e ativar ambiente virtual com uv
uv venv
source .venv/bin/activate
Instalar dependências
uv sync
Configuração
- Crie um arquivo
.envna raiz do projeto com as seguintes variáveis:
ENVIRONMENT=DEV # Options: LOCAL, DEV, STAGING, PROD
COINMARKETCAP_API_KEY=your_api_key_here
- Você também pode criar arquivos de ambiente específicos para cada ambiente:
.dev.env- Para ambiente de desenvolvimento.staging.env- Para ambiente de staging.prod.env- Para ambiente de produção
Uso
Execução Local
python main.py
Isso iniciará o servidor MCP que escutará solicitações através da entrada/saída padrão (stdio).
Usando Docker
# Build the image
docker build -t test-mcp -f Dockerfile --platform linux/amd64 .
# Run the container
docker run -it test-mcp
Estrutura do Projeto
.
├── 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
Desenvolvimento
Adicionando Novas Ferramentas ao Servidor MCP
Para adicionar uma nova ferramenta ao servidor MCP, siga estes passos:
- Defina a função no arquivo
src/__init__.py - Registre a ferramenta na função
main() - Documente a ferramenta com docstrings
Exemplo:
@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
