Unichat
Uma interface unificada para vários modelos de chat de IA, incluindo OpenAI, MistralAI, Anthropic e Google AI, exigindo chaves de API dos fornecedores.
Documentação
Servidor MCP Unichat em Python
Também disponível em TypeScript
Envie solicitações para OpenAI, Anthropic e provedores compatíveis com OpenAI usando o protocolo MCP por meio de ferramentas ou prompts predefinidos. Para provedores compatíveis com OpenAI, como MistralAI, xAI, Google AI, DeepSeek, Alibaba ou Inception, defina UNICHAT_BASE_URL para o endpoint de API compatível do provedor.
Chave de API do fornecedor necessária
Ferramentas
O servidor implementa uma ferramenta:
unichat: Enviar uma solicitação para unichat- Aceita "messages" como argumentos de string obrigatórios
- Retorna uma resposta
Prompts
code_review- Revisar código em busca de boas práticas, problemas potenciais e melhorias
- Argumentos:
code(string, obrigatório): O código a ser revisado"
document_code- Gerar documentação para código, incluindo docstrings e comentários
- Argumentos:
code(string, obrigatório): O código a ser comentado"
explain_code- Explicar em detalhes como um trecho de código funciona
- Argumentos:
code(string, obrigatório): O código a ser explicado"
code_rework- Aplicar as alterações solicitadas ao código fornecido
- Argumentos:
changes(string, opcional): As alterações a serem aplicadas"code(string, obrigatório): O código a ser reformulado"
Início rápido
Instalação
Claude Desktop
No MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
No Windows: %APPDATA%/Claude/claude_desktop_config.json
Modelos suportados:
Uma lista dos modelos atualmente suportados para uso como
"SELECTED_UNICHAT_MODEL"pode ser encontrada aqui. Certifique-se de adicionar a chave de API do fornecedor relevante como"YOUR_UNICHAT_API_KEY"
Exemplo:
"env": {
"UNICHAT_MODEL": "gpt-5.4-mini",
"UNICHAT_API_KEY": "YOUR_OPENAI_API_KEY"
}
Para provedores compatíveis com OpenAI com endpoints personalizados:
"env": {
"UNICHAT_MODEL": "PROVIDER_MODEL",
"UNICHAT_API_KEY": "YOUR_PROVIDER_API_KEY",
"UNICHAT_BASE_URL": "https://provider.example.com/v1"
}
Quando UNICHAT_BASE_URL está definido, o servidor aceita o UNICHAT_MODEL configurado sem verificá-lo na lista de modelos integrados do Unichat.
Configuração de Servidores de Desenvolvimento/Não Publicados
"mcpServers": {
"unichat-mcp-server": {
"command": "uv",
"args": [
"--directory",
"{{your source code local directory}}/unichat-mcp-server",
"run",
"--locked",
"unichat-mcp-server"
],
"env": {
"UNICHAT_MODEL": "SELECTED_UNICHAT_MODEL",
"UNICHAT_API_KEY": "YOUR_UNICHAT_API_KEY"
}
}
}
Configuração de Servidores Publicados
"mcpServers": {
"unichat-mcp-server": {
"command": "uvx",
"args": [
"unichat-mcp-server"
],
"env": {
"UNICHAT_MODEL": "SELECTED_UNICHAT_MODEL",
"UNICHAT_API_KEY": "YOUR_UNICHAT_API_KEY"
}
}
}
Instalação via Smithery
Para instalar o Unichat para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install unichat-mcp-server --client claude
Desenvolvimento
Instalação limpa a partir do código-fonte
Pré-requisitos: Git, Python 3.11 ou mais recente (conforme declarado em pyproject.toml) e uv disponível no seu PATH. Node.js/npm só é necessário para o MCP Inspector opcional abaixo. Os exemplos de shell usam sintaxe Bash/Zsh.
Clone o repositório e restaure suas dependências bloqueadas:
git clone https://github.com/amidabuddha/unichat-mcp-server.git
cd unichat-mcp-server
uv sync --locked
uv sync --locked cria o .venv/ local do projeto, instala o projeto em modo editável e restaura as dependências de uv.lock. Ele falha se o arquivo de bloqueio precisar ser atualizado, em vez de alterá-lo silenciosamente. Nenhuma ativação de ambiente virtual ou instalação global de dependências Python é necessária ao usar uv run.
Defina as mesmas variáveis de ambiente usadas nos exemplos do Claude Desktop, substituindo os espaços reservados pelos valores do seu provedor:
export UNICHAT_MODEL="SELECTED_UNICHAT_MODEL"
export UNICHAT_API_KEY="YOUR_UNICHAT_API_KEY"
# Optional, for an OpenAI-compatible provider with a custom endpoint:
# export UNICHAT_BASE_URL="https://provider.example.com/v1"
O servidor lê variáveis de ambiente; ele não carrega arquivos .env por conta própria. Para Claude Desktop, mantenha esses valores na configuração env do servidor mostrada acima.
Execute o servidor local:
uv run --locked unichat-mcp-server
Este é um servidor MCP stdio: conecte-se através do Claude Desktop ou do Inspector abaixo para interagir com ele. Ele não inicia uma página da web ou um prompt de chat interativo. A instalação editável é suficiente para executá-lo; para também criar distribuições de origem e wheel usando o backend Hatchling configurado:
uv build
Os pacotes são gravados em dist/. uv build fornece o backend de build em um ambiente isolado; um frontend build instalado globalmente é desnecessário. As dependências de runtime são bloqueadas por uv.lock, mas o requisito de build hatchling não é fixado em versão em pyproject.toml.
Desenvolvimento normal
Após editar arquivos em src/, reinicie o servidor ou reconecte-o no seu cliente MCP:
uv run --locked unichat-mcp-server
A instalação editável usa o código-fonte atual. Alterações comuns no código-fonte não exigem excluir .venv/, reinstalar dependências ou reconstruir pacotes de distribuição. Execute uv build novamente somente quando precisar de artefatos de pacote atualizados. Após puxar alterações no manifesto de dependências e no arquivo de bloqueio, execute uv sync --locked para atualizar o ambiente para corresponder a eles.
Este repositório não possui suíte de testes automatizada configurada ou comando de observação. Use o Inspector abaixo para exercitar manualmente ferramentas e prompts, reiniciando o servidor após alterações.
Reconstrução limpa de um checkout existente
Pare o servidor em execução e execute estes comandos a partir da raiz do repositório (o diretório que contém pyproject.toml e uv.lock). Esses caminhos assumem o ambiente local padrão do projeto do uv: .venv/ contém dependências instaladas e o projeto editável, e dist/ contém arquivos de origem/wheel gerados.
rm -rf .venv dist
uv sync --locked
uv build
Isso recria o ambiente e os pacotes de distribuição. Mantenha uv.lock, código-fonte, configuração, arquivos .env e dados do usuário. Outros nomes ignorados, como build/ e wheels/, não são saídas estabelecidas do fluxo de build deste projeto e não são alvos de limpeza. Caches globais do uv e instalações Python podem ser reutilizados. Para executar novamente, retenha ou reaplique as variáveis de ambiente acima e use uv run --locked unichat-mcp-server.
Atualizações intencionais de dependências
Atualizações de dependências são separadas da restauração. Ao alterar deliberadamente os requisitos em pyproject.toml, execute uv lock e revise as alterações resultantes em uv.lock, depois execute uv sync --locked. Para atualizar deliberadamente uma dependência existente dentro de suas restrições declaradas, por exemplo:
uv lock --upgrade-package unichat
uv sync --locked
Revise as alterações no arquivo de bloqueio e verifique o comportamento do servidor antes de aceitar a atualização. Instalação e reconstrução de rotina devem usar o arquivo de bloqueio existente.
Publicação
A publicação é uma ação separada do mantenedor e não faz parte da instalação local ou reconstrução. Prepare distribuições novas com o fluxo de reconstrução limpa acima e verifique se dist/ contém apenas o lançamento pretendido antes de enviar para o PyPI:
uv publish --token "YOUR_PYPI_API_TOKEN"
O repositório também tem um fluxo de publicação em .github/workflows/publish.yml, acionado por alterações em pyproject.toml em main ou despacho manual.
Depuração
Como os servidores MCP são executados via stdio, a depuração pode ser desafiadora. Para a melhor experiência de depuração, recomendamos fortemente usar o MCP Inspector.
Você pode iniciar o MCP Inspector via npm com este comando:
npx @modelcontextprotocol/inspector uv --directory "/path/to/unichat-mcp-server" run --locked unichat-mcp-server
Ao iniciar, o Inspector exibirá uma URL que você pode acessar no seu navegador para começar a depurar.
Implantação hospedada
Uma implantação hospedada está disponível na Fronteir AI.