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

MseeP.ai Security Assessment Badge

Released under the MIT license. Trust Score Smithery Server Installations

Hosted at MCPHub

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.