devvo-ops-mcp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,97 +2,71 @@
2
2
 
3
3
  Servidor MCP local para integrar clientes como Cursor, Codex, Claude Desktop e outros agentes ao gerenciador de projetos Devvo Ops. A primeira tool disponível é `get_task_by_key`, que consulta uma task por uma key como `TASK-100`.
4
4
 
5
- ```text
6
- AI Client
7
- ↓ MCP stdio
8
- Devvo Ops MCP
9
- ↓ HTTP(S)
10
- Devvo Ops API
11
- ```
12
-
13
- ## Arquitetura
14
-
15
- O MCP é um cliente externo da API, embora seu código esteja atualmente no mesmo repositório.
16
-
17
- > Mesmo estando no mesmo repositório, o MCP não deve importar services, repositories, entities, controllers, banco de dados ou outras implementações internas da API.
5
+ ## Comece em poucos minutos
18
6
 
19
- ```text
20
- CORRETO
21
-
22
- MCP
23
- ↓ HTTP
24
- API
25
- ↓
26
- Services
27
- ```
7
+ Requer Node.js 20 ou superior. O pacote é executado via `npx`, então o usuário não precisa clonar este repositório para usar o MCP.
28
8
 
29
- ```text
30
- INCORRETO
9
+ 1. Faça login uma vez:
31
10
 
32
- MCP
33
- ↓ import
34
- TaskService
11
+ ```bash
12
+ npx devvo-ops-mcp login
35
13
  ```
36
14
 
37
- Essa separação permite publicar o pacote independentemente no NPM, reduz acoplamento, evita dependência da implementação interna, mantém autenticação e autorização na API e permite que ambos evoluam separadamente.
38
-
39
- ## Estrutura
15
+ 2. Configure o servidor no seu cliente MCP.
16
+ 3. Reinicie o cliente, quando necessário, e peça por uma task:
40
17
 
41
18
  ```text
42
- src/
43
- ├── api/ # transporte HTTP, cliente da API e mapeamento de respostas
44
- ├── auth/ # gerenciamento de tokens e persistência da sessão
45
- ├── cli/ # prompts interativos do CLI
46
- ├── tools/ # tools MCP, sem conhecimento de autenticação
47
- └── index.ts # comandos CLI e servidor MCP stdio
19
+ Mostre a TASK-100.
20
+ O que precisa ser feito na TASK-100?
21
+ Leia a TASK-100 e me explique como você implementaria.
48
22
  ```
49
23
 
50
- ## Desenvolvimento
24
+ ### Codex
51
25
 
52
- Requer Node.js 20 ou superior.
26
+ Pelo CLI:
53
27
 
54
28
  ```bash
55
- cd mcp
56
- npm install
57
- npm run build
58
- npm test
29
+ codex mcp add devvo-ops -- npx -y devvo-ops-mcp
59
30
  ```
60
31
 
61
- A URL da API é configurada por `DEVVO_OPS_API_URL`. O valor padrão para desenvolvimento local é `http://localhost:3334`.
32
+ Ou edite `~/.codex/config.toml`:
62
33
 
63
- ## Autenticação
64
-
65
- ```bash
66
- npx devvo-ops-mcp login
34
+ ```toml
35
+ [mcp_servers.devvo-ops]
36
+ command = "npx"
37
+ args = ["-y", "devvo-ops-mcp"]
67
38
  ```
68
39
 
69
- ```text
70
- email + senha
71
- ↓
72
- API
73
- ↓
74
- refresh token
75
- ↓
76
- ~/.devvo-ops-mcp/auth.json
77
- ```
40
+ Depois, abra o Codex e use `/mcp` para conferir se o servidor foi carregado.
78
41
 
79
- A senha nunca é persistida. O access token permanece somente na memória do processo; apenas o refresh token e, opcionalmente, o email são gravados. O MCP renova tokens automaticamente e salva o novo refresh token quando a API faz rotação.
42
+ ### Claude Desktop, Cursor e clientes compatíveis
80
43
 
81
- O arquivo `~/.devvo-ops-mcp/auth.json` é uma credencial sensível: deve permanecer fora do repositório, nunca deve ser commitado, enviado ou compartilhado, e é removido no logout. O pacote solicita permissões `0700` para o diretório e `0600` para o arquivo quando o sistema operacional oferece suporte.
44
+ Adicione o mesmo bloco no arquivo de configuração MCP do seu cliente:
82
45
 
83
- Comandos disponíveis:
46
+ - Claude Desktop: `claude_desktop_config.json`
47
+ - Cursor: `.cursor/mcp.json`
48
+ - Outros clientes compatíveis: arquivo de configuração MCP indicado pelo cliente
84
49
 
85
- ```bash
86
- npx devvo-ops-mcp login
87
- npx devvo-ops-mcp status
88
- npx devvo-ops-mcp logout
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "devvo-ops": {
54
+ "command": "npx",
55
+ "args": ["-y", "devvo-ops-mcp"]
56
+ }
57
+ }
58
+ }
89
59
  ```
90
60
 
91
- Executar o pacote sem subcomando inicia o servidor MCP via `stdio`.
61
+ Não coloque email, senha, access token ou refresh token na configuração do cliente. Essas credenciais são gerenciadas pelo comando `login`.
62
+
63
+ ## Variáveis de ambiente
92
64
 
93
- ## Uso em um cliente MCP
65
+ Por padrão, o MCP usa a API oficial do Devvo Ops: `https://devvo-ops-backend-791587092728.us-central1.run.app`.
94
66
 
95
- Faça login primeiro e adicione uma configuração equivalente à seguinte no cliente:
67
+ Use `DEVVO_OPS_API_URL` apenas se precisar apontar para outro ambiente, como desenvolvimento local ou staging.
68
+
69
+ Configuração MCP completa com `DEVVO_OPS_API_URL`:
96
70
 
97
71
  ```json
98
72
  {
@@ -101,55 +75,45 @@ Faça login primeiro e adicione uma configuração equivalente à seguinte no cl
101
75
  "command": "npx",
102
76
  "args": ["-y", "devvo-ops-mcp"],
103
77
  "env": {
104
- "DEVVO_OPS_API_URL": "https://api.example.com"
78
+ "DEVVO_OPS_API_URL": "http://localhost:3334"
105
79
  }
106
80
  }
107
81
  }
108
82
  }
109
83
  ```
110
84
 
111
- Não coloque email, senha, access token ou refresh token nessa configuração.
85
+ ## Autenticação
112
86
 
113
- Exemplos de solicitações:
87
+ ```bash
88
+ npx devvo-ops-mcp login
89
+ ```
114
90
 
115
91
  ```text
116
- Mostre a TASK-100.
117
- O que precisa ser feito na TASK-100?
118
- Leia a TASK-100 e me explique como você implementaria.
92
+ email + senha
93
+ ↓
94
+ API
95
+ ↓
96
+ refresh token
97
+ ↓
98
+ ~/.devvo-ops-mcp/auth.json
119
99
  ```
120
100
 
121
- ## MCP Inspector
101
+ A senha nunca é persistida. O access token permanece somente na memória do processo; apenas o refresh token e, opcionalmente, o email são gravados. O MCP renova tokens automaticamente e salva o novo refresh token quando a API faz rotação.
122
102
 
123
- Depois do build, teste o transporte e a tool com:
103
+ O arquivo `~/.devvo-ops-mcp/auth.json` é uma credencial sensível: deve permanecer fora do repositório, nunca deve ser commitado, enviado ou compartilhado, e é removido no logout. O pacote solicita permissões `0700` para o diretório e `0600` para o arquivo quando o sistema operacional oferece suporte.
124
104
 
125
- ```bash
126
- npx @modelcontextprotocol/inspector node dist/index.js
127
- ```
105
+ ## Comandos
128
106
 
129
- Também é possível inspecionar diretamente o código TypeScript durante o desenvolvimento:
107
+ Use estes comandos para gerenciar a sessão local:
130
108
 
131
109
  ```bash
132
- npx @modelcontextprotocol/inspector npx tsx src/index.ts
133
- ```
134
-
135
- ## Boas práticas para novas tools
136
-
137
- Toda nova tool deve manter o fluxo:
138
-
139
- ```text
140
- Tool
141
- ↓
142
- ApiClient
143
- ↓
144
- API
110
+ npx devvo-ops-mcp login
111
+ npx devvo-ops-mcp status
112
+ npx devvo-ops-mcp logout
145
113
  ```
146
114
 
147
- Nunca use:
115
+ Para iniciar o servidor MCP manualmente via `stdio`:
148
116
 
149
- ```text
150
- Tool
151
- ↓
152
- Service interno
117
+ ```bash
118
+ npx -y devvo-ops-mcp
153
119
  ```
154
-
155
- As tools devem ter responsabilidade pequena e schemas claros, não conhecer autenticação, não acessar banco diretamente, não duplicar regras de negócio da API, retornar apenas contexto útil ao LLM e utilizar o `ApiClient` compartilhado.
package/dist/config.js CHANGED
@@ -1,4 +1,4 @@
1
- const DEFAULT_API_URL = 'http://localhost:3334';
1
+ const DEFAULT_API_URL = 'https://devvo-ops-backend-791587092728.us-central1.run.app';
2
2
  export function getApiBaseUrl(environment = process.env) {
3
3
  const configuredUrl = environment.DEVVO_OPS_API_URL?.trim() || DEFAULT_API_URL;
4
4
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,cAAiC,OAAO,CAAC,GAAG;IACxE,MAAM,aAAa,GAAG,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,4DAA4D,CAAC;AAErF,MAAM,UAAU,aAAa,CAAC,cAAiC,OAAO,CAAC,GAAG;IACxE,MAAM,aAAa,GAAG,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devvo-ops-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Servidor MCP local para consultar o Devvo Ops.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",