Trade-MCP

Um projeto modular de automação de negociação utilizando a API Zerodha Kite Connect para automação baseada em ferramentas e recursos.

Documentação

Trade-MCP

Um projeto modular de automação de trading usando Zerodha Kite Connect e MCP (Modular Command Platform) para automação baseada em ferramentas e recursos. Este projeto expõe ações de trading (como colocar ordens e buscar posições) como ferramentas MCP, tornando-as acessíveis ao Claude Desktop e outros clientes compatíveis com MCP.


Recursos

  • Integração Zerodha: Coloque ordens de compra/venda e busque posições usando a API Kite Connect.
  • Ferramentas MCP: Exponha ações de trading como ferramentas chamáveis para automação e agentes de IA.
  • Segredos baseados em ambiente: Chaves de API e segredos são carregados de um arquivo .env por segurança.
  • Extensível: Adicione facilmente novas ferramentas ou recursos para mais ações de trading.

Configuração

1. Clone o Repositório

git clone <your-repo-url>
cd Trade-MCP

2. Crie e Ative um Ambiente Virtual

uv venv
.venv\Scripts\activate  # On Windows
# or
source .venv/bin/activate  # On Linux/Mac

3. Instale as Dependências

uv pip install -r requirements.txt
# or, if using pyproject.toml:
uv pip install .

4. Configure as Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto:

API_KEY=your_zerodha_api_key
API_SECRET=your_zerodha_api_secret

5. Obtenha seu Token de Acesso Zerodha

Para usar a API Zerodha, você precisa de um token de acesso. Siga estes passos:

  1. Obtenha sua Chave de API e Segredo

  2. Gere a URL de Login
    Em um shell ou script Python, execute:

    from kiteconnect import KiteConnect
    kite = KiteConnect(api_key="your_api_key")
    print(kite.login_url())
    
    • Abra a URL impressa no seu navegador e faça login com suas credenciais Zerodha.
  3. Extraia o request_token

    • Após o login, você será redirecionado para sua URL de redirecionamento (definida nas configurações do aplicativo Zerodha).
    • A URL terá a seguinte aparência:
      http://localhost:8000/?request_token=REQUEST_TOKEN_HERE&action=login&status=success
    • Copie o valor de request_token da URL.
  4. Troque o request_token por um access_token
    Em um shell ou script Python, execute:

    data = kite.generate_session("REQUEST_TOKEN_HERE", api_secret="your_api_secret")
    print(data["access_token"])
    
    • Substitua "REQUEST_TOKEN_HERE" e "your_api_secret" pelos seus valores reais.
    • O valor impresso é o seu access_token.
  5. Defina o Token de Acesso

    • Você pode defini-lo como uma variável de ambiente ou usá-lo diretamente no seu código, conforme necessário.

Uso

Execute o Servidor MCP

uv run --with mcp[cli] mcp run server.py

Ou, se o CLI MCP estiver instalado no seu ambiente:

mcp run server.py

Integração com Claude Desktop

  1. Adicione uma entrada de servidor no seu claude_desktop_config.json:

    {
      "mcpServers": {
        "Trade-MCP": {
          "command": "uv.EXE", # Exact Path to uv executable
          "args": [
            "run",
            "--with",
            "mcp[cli]",
            "mcp",
            "run",
            "server.py" # Exact Path to your server script
          ]
        }
      }
    }
    
  2. Reinicie o Claude Desktop.

  3. As ferramentas aparecerão na lista de ferramentas do Claude.


Ferramentas Expostas

  • add(a: int, b: int): Adiciona dois números.
  • place_zerodha_buy_order(symbol: str, quantity: int): Coloca uma ordem de compra.
  • place_zerodha_sell_order(symbol: str, quantity: int): Coloca uma ordem de venda.
  • get_zerodha_holdings(): Obtém todas as posições da Zerodha.

Extensão

Para adicionar uma nova ferramenta, defina uma função em server.py e decore-a com @mcp.tool():

@mcp.tool()
def my_tool(...):
    ...

Licença

Licença MIT