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 +62 -98
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
30
|
-
INCORRETO
|
|
9
|
+
1. Faça login uma vez:
|
|
31
10
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
TaskService
|
|
11
|
+
```bash
|
|
12
|
+
npx devvo-ops-mcp login
|
|
35
13
|
```
|
|
36
14
|
|
|
37
|
-
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
24
|
+
### Codex
|
|
51
25
|
|
|
52
|
-
|
|
26
|
+
Pelo CLI:
|
|
53
27
|
|
|
54
28
|
```bash
|
|
55
|
-
|
|
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
|
-
|
|
32
|
+
Ou edite `~/.codex/config.toml`:
|
|
62
33
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
34
|
+
```toml
|
|
35
|
+
[mcp_servers.devvo-ops]
|
|
36
|
+
command = "npx"
|
|
37
|
+
args = ["-y", "devvo-ops-mcp"]
|
|
67
38
|
```
|
|
68
39
|
|
|
69
|
-
|
|
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
|
-
|
|
42
|
+
### Claude Desktop, Cursor e clientes compatíveis
|
|
80
43
|
|
|
81
|
-
|
|
44
|
+
Adicione o mesmo bloco no arquivo de configuração MCP do seu cliente:
|
|
82
45
|
|
|
83
|
-
|
|
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
|
-
```
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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": "
|
|
78
|
+
"DEVVO_OPS_API_URL": "http://localhost:3334"
|
|
105
79
|
}
|
|
106
80
|
}
|
|
107
81
|
}
|
|
108
82
|
}
|
|
109
83
|
```
|
|
110
84
|
|
|
111
|
-
|
|
85
|
+
## Autenticação
|
|
112
86
|
|
|
113
|
-
|
|
87
|
+
```bash
|
|
88
|
+
npx devvo-ops-mcp login
|
|
89
|
+
```
|
|
114
90
|
|
|
115
91
|
```text
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
92
|
+
email + senha
|
|
93
|
+
↓
|
|
94
|
+
API
|
|
95
|
+
↓
|
|
96
|
+
refresh token
|
|
97
|
+
↓
|
|
98
|
+
~/.devvo-ops-mcp/auth.json
|
|
119
99
|
```
|
|
120
100
|
|
|
121
|
-
|
|
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
|
-
|
|
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
|
-
|
|
126
|
-
npx @modelcontextprotocol/inspector node dist/index.js
|
|
127
|
-
```
|
|
105
|
+
## Comandos
|
|
128
106
|
|
|
129
|
-
|
|
107
|
+
Use estes comandos para gerenciar a sessão local:
|
|
130
108
|
|
|
131
109
|
```bash
|
|
132
|
-
npx
|
|
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
|
-
|
|
115
|
+
Para iniciar o servidor MCP manualmente via `stdio`:
|
|
148
116
|
|
|
149
|
-
```
|
|
150
|
-
|
|
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 = '
|
|
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 {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,
|
|
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"}
|