Skip to main content
Glama
nerigleston

Jangada Docs MCP

by nerigleston
README.md
# Jangada Docs MCP

Servidor **MCP** que dá ao seu assistente de IA (Claude Code, Claude Desktop,
Cursor…) acesso a **toda a documentação da biblioteca [jangada](https://github.com/nerigleston/jangada)**
(`jangada-ai`). Assim o assistente escreve código com a **API atual e correta** —
sem inventar nomes de função, assinaturas ou parâmetros.

> Feito **para desenvolvedores** que constroem com o `jangada`. É o próprio
> jangada **sendo um servidor MCP** (`serve_mcp`/`build_mcp_app`). A doc vem
> embutida no pacote — self-contained, sem depender de rede em runtime.

## Hospedado (HTTP) — sem instalar nada

Já há uma instância pública em **`https://mcp.jangada.dev.br/mcp/`** (note a barra
final). Conecte por HTTP:
```bash
claude mcp add jangada-mcp --transport http https://mcp.jangada.dev.br/mcp/
```
(roda na AWS Lambda + API Gateway — passo a passo, IaC e CI/CD em [DEPLOY.md](DEPLOY.md).)

Prefere local/stdio (sem depender do servidor hospedado)? Veja o `uvx` abaixo.

---

## Jeito mais fácil: `uvx` (sem clonar nada)

Como o `npx` do Node, o **`uvx`** roda o servidor direto do GitHub — **sem clonar,
sem instalar manualmente**. Só precisa do [`uv`](https://docs.astral.sh/uv/)
(`curl -LsSf https://astral.sh/uv/install.sh | sh`).

Comando que as configurações abaixo usam:

```bash
uvx --from git+https://github.com/nerigleston/jangada-docs-mcp jangada-docs-mcp
```

(O `uvx` baixa, monta e roda o pacote numa sandbox temporária a cada uso.)

---

## Claude Code

### Em um projeto específico (escopo do projeto)

Vale **só naquele projeto** (ideal para times — pode commitar). Crie um
`.mcp.json` na **raiz do projeto**:

```json
{
  "mcpServers": {
    "jangada-docs": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/nerigleston/jangada-docs-mcp", "jangada-docs-mcp"]
    }
  }
}
```

Ou pela CLI:

```bash
claude mcp add jangada-docs --scope project -- \
  uvx --from git+https://github.com/nerigleston/jangada-docs-mcp jangada-docs-mcp
```

### Globalmente (todos os seus projetos)

Disponível em **qualquer projeto seu** (escopo do usuário, fica no seu PC):

```bash
claude mcp add jangada-docs --scope user -- \
  uvx --from git+https://github.com/nerigleston/jangada-docs-mcp jangada-docs-mcp
```

> Escopos do Claude Code: `project` (no `.mcp.json` do projeto, compartilhável) ·
> `local` (só você, naquele projeto) · `user` (global, todos os seus projetos).

---

## Claude Desktop (global)

Settings → Developer → **Edit Config** (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "jangada-docs": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/nerigleston/jangada-docs-mcp", "jangada-docs-mcp"]
    }
  }
}
```

Reinicie o Claude Desktop.

## Cursor

- **Global:** `~/.cursor/mcp.json`  ·  **Projeto:** `.cursor/mcp.json`

Use o mesmo bloco `mcpServers` acima.

---

## Alternativa sem `uv` (clonar o repo)

```bash
git clone https://github.com/nerigleston/jangada-docs-mcp
cd jangada-docs-mcp
pip install -r requirements.txt        # = jangada-ai[mcp]
```

Aponte a config para o `python` do seu ambiente + o `server`:

```json
{
  "mcpServers": {
    "jangada-docs": {
      "command": "/caminho/para/python",
      "args": ["-m", "jangada_docs_mcp.server"]
    }
  }
}
```

---

## Ferramentas expostas

| Ferramenta | Para que serve |
|-----------|----------------|
| `jangada_indice()` | Índice/ordem das páginas. Comece aqui. |
| `jangada_listar_docs()` | Lista todas as páginas (nome — título). |
| `jangada_ler_doc(nome, lang)` | Conteúdo completo de uma página (`pt` padrão ou `en`). |
| `jangada_buscar(termo)` | Procura um termo em toda a doc (trechos + página). |

O assistente decide sozinho quando chamar — ex.: você pede "faça um RAG com
reranking" e ele consulta `jangada_ler_doc("rag")` antes de escrever.

## Como funciona

`jangada_docs_mcp/server.py` registra as funções acima como ferramentas MCP via
`jangada_ai.serve_mcp(...)` — sobre o `Server` **low-level** do protocolo MCP
(não FastMCP). Transporte **stdio**. A doc fica em `jangada_docs_mcp/docs/`
(snapshot do site da lib), empacotada no wheel.

## Licença

MIT — veja [LICENSE](LICENSE).

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct purpose: searching, listing index, reading a specific document, and listing all documents. There is no overlap or ambiguity.

Naming Consistency5/5

All tools follow the pattern `jangada_<action>` in snake_case (buscar, indice, ler_doc, listar_docs), with consistent formatting and clear verb/noun usage.

Tool Count5/5

Four tools is a reasonable count for a documentation server, covering search, navigation, and reading without being too few or too many.

Completeness4/5

The tool set covers essential documentation operations (search, index, read, list). A minor gap might be the absence of a tool to retrieve table of contents or metadata for a page, but core workflows are well-supported.

Maintenance

ActivityActive
ResponsivenessNo issues