Endpoint MCP
Visão geral
Agradecimentos especiais ao XiaoZhi AI Chatbot por suas contribuições de código aberto que tornaram este projeto possível.
MCP (Model Context Protocol) é um framework poderoso que estende as capacidades da IA ao permitir controle remoto, computação, operações de e-mail, pesquisas de conhecimento e muito mais.
O MCP permite que servidores exponham ferramentas chamáveis para modelos de linguagem por meio de um protocolo bem definido. Essas ferramentas permitem que o modelo interaja com sistemas externos, como consultar bancos de dados, invocar APIs ou realizar cálculos complexos. Cada ferramenta é identificada exclusivamente por um nome e descrita por metadados que definem sua funcionalidade.
O Endpoint MCP serve como ponte entre o seu serviço MCP local e o modelo Xiaozhi AI. Ele fornece uma interface para dispositivos com voz e outros terminais aproveitarem perfeitamente essas capacidades externas.
Obter o Endpoint MCP
-
Acesse a SenseCraft AI Platform
-
Para acessar o Painel de Controle, clique em Watcher Agent no canto superior direito da página.

- Abra a configuração do agent

- Clique em
MCP SettingeGet MCP Endpoint

- Obtenha o endereço do Endpoint e o Status da Conexão

Exemplo de MCP
Agradecimentos especiais ao XiaoZhi AI Chatbot por suas contribuições de código aberto que tornaram este projeto possível.
Você pode obter o seguinte código no MCP Example Code Github
Exemplo de código de servidor MCP
# server.py
from mcp.server.fastmcp import FastMCP
import logging
logger = logging.getLogger('test_mcp')
import math
import random
# Create an MCP server
mcp = FastMCP("Calculator")
# Add an addition tool
@mcp.tool()
def calculator(python_expression: str) -> dict:
"""For mathamatical calculation, always use this tool to calculate the result of a python expression. `math` and `random` are available."""
result = eval(python_expression)
logger.info(f"Calculating formula: {python_expression}, result: {result}")
return {"success": True, "result": result}
# Start the server
if __name__ == "__main__":
mcp.run(transport="stdio")
Explicação do código
Abaixo está uma explicação detalhada de algumas partes principais do exemplo de servidor MCP:
-
@mcp.tool(): Registra a função seguinte como uma ferramenta MCP que pode ser chamada remotamente pelo modelo de IA. -
def calculator(python_expression: str) -> dict: Define uma ferramenta que recebe uma expressão matemática do modelo. -
result = eval(python_expression): Usa o eval() do Python para avaliar a expressão. Bibliotecas como math e random podem ser usadas porque foram importadas acima. -
mcp.run(transport="stdio"): Inicia o servidor. O transporte stdio permite que ele se comunique com o Watcher Agent ou com o seu cliente MCP.
Início rápido
-
Requisitos
- MCP Example Code Github
- Python 3.7+
- websockets>=11.0.3
- python-dotenv>=1.0.0
- mcp>=1.8.1
- pydantic>=2.11.4
- mcp-proxy>=0.8.2
-
Passo 1. Clone o repositório e navegue até a pasta do projeto
git clone https://github.com/78/mcp-calculator.git
cd mcp-calculator -
Passo 2. Instale as dependências
pip install -r requirements.txt -
Passo 3. Configure as variáveis de ambiente
- Para Linux/macOS
export MCP_ENDPOINT=<your_mcp_endpoint> - Para Windows (PowerShell)
$env:MCP_ENDPOINT="<your_mcp_endpoint>" - Para Windows (CMD)
set MCP_ENDPOINT=<your_mcp_endpoint>
- Para Linux/macOS
-
Passo 4. Execute o exemplo da calculadora
python mcp_pipe.py calculator.py -
Ou execute todos os servidores configurados
python mcp_pipe.pynotaIsso requer um arquivo de configuração mcp_config.json definindo as configurações do servidor.
Resultado da execução
export MCP_ENDPOINT=<mcp_endpoint_address_get_from_your_agent_configuration>
python mcp_pipe.py calculator.py
2025-05-16 09:07:09,009 - MCP_PIPE - INFO - Connecting to WebSocket server...
2025-05-16 09:07:09,096 - MCP_PIPE - INFO - Successfully connected to WebSocket server
2025-05-16 09:07:09,097 - MCP_PIPE - INFO - Started test.py process
Processing request of type ListToolsRequest
Processing request of type CallToolRequest
Calculating formula: 3.14159 * (8 / 2) ** 2, result: 50.26544
Processing request of type CallToolRequest
Calculating formula: math.comb(10, 3), result: 120
Status do Endpoint MCP

- Connection Status: Mostra se a sua conexão MCP está funcionando corretamente.
- Ícone de atualização: Atualiza o status da sua conexão MCP.
- Enabled Services: Lista todos os serviços MCP que o seu watcher pode usar.
- Endpoint Address: Seu mcp_endpoint_address (não compartilhe isso com ninguém, a menos que seja exigido pelo suporte técnico oficial)
Log de conversas


Precauções
1. Nomeação de ferramentas e parâmetros no MCP
Os nomes das ferramentas e de seus parâmetros devem ser claros para que o modelo grande entenda seu propósito. Evite usar abreviações sempre que possível e forneça um comentário explicando a função da ferramenta e quando ela deve ser usada.
Por exemplo, uma ferramenta chamada calculator permite que o modelo saiba que se trata de uma calculadora, e o parâmetro python_expression indica que o modelo deve inserir uma expressão Python.
Se você estiver escrevendo uma ferramenta bing_search, o nome do parâmetro deve ser keywords.
2. Orientação via docstring da função
A docstring (usando """...""") orienta o modelo sobre quando usar a ferramenta.
Ela também pode mencionar que funções das bibliotecas math e random podem ser usadas na expressão.
Essas duas bibliotecas já foram importadas no código de exemplo.
3. Fazer log em vez de imprimir
Como a entrada/saída padrão neste exemplo de Servidor MCP é usada para transmissão de dados, você não pode usar print para exibir informações.
Use logger para depuração e registro em log.
4. Valores de retorno
Os valores de retorno MCP geralmente são uma string ou JSON. No exemplo, o resultado do cálculo é retornado em um campo JSON chamado result.
O comprimento dos valores de retorno costuma ser limitado, semelhante a comandos de dispositivos IoT, normalmente dentro de 1024 bytes.
5. Limite da lista de ferramentas
A lista de ferramentas MCP possui um limite máximo.
Mais tarde, ela será exibida na página de configuração, calculada com base na contagem de tokens.
Observação: Ter ferramentas demais pode afetar a eficiência de agendamento do dispositivo.
6. Limite de conexão
Cada endpoint MCP possui um número máximo de conexões simultâneas.
Observação: Exceder esse limite ou ter conexões simultâneas em excesso pode reduzir o desempenho do dispositivo.
Selecionar serviços MCP pré-fornecidos
Os quatro serviços MCP a seguir estão disponíveis para você escolher em MCP Setting, mencionado anteriormente.
Depois de salvar a configuração e reiniciar o dispositivo, os serviços selecionados entrarão em vigor automaticamente.
Você pode remover o serviço clicando em ×
