@farm3/claude-plugin 0.0.0-stage → 1.0.0

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.
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "farm3",
3
+ "version": "1.0.0",
4
+ "description": "farm3 (CDP) no Claude Code via MCP: consultar e gerenciar perfis, eventos, segmentos, funis, ativações (e-mail, anúncios, webhooks), análises, conectores, LGPD, recomendações do agente e configurações do tenant. Autenticado por API key com escopo mcp:read ou mcp:write.",
5
+ "author": { "name": "farm3" },
6
+ "homepage": "https://farm3.io",
7
+ "license": "MIT",
8
+ "userConfig": {
9
+ "api_key": {
10
+ "type": "string",
11
+ "title": "API key do farm3",
12
+ "description": "Chave cdp_live_... com escopo \"MCP — leitura\" ou \"MCP — leitura e escrita\", criada em Configurações > API no painel do farm3.",
13
+ "required": true,
14
+ "sensitive": true
15
+ },
16
+ "api_url": {
17
+ "type": "string",
18
+ "title": "URL do farm3",
19
+ "description": "Endereço do painel do farm3. Mude só para desenvolvimento local (ex.: http://localhost:3000).",
20
+ "default": "https://app.farm3.io"
21
+ }
22
+ }
23
+ }
package/.mcp.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "farm3": {
4
+ "type": "http",
5
+ "url": "${user_config.api_url}/api/v1/mcp",
6
+ "headers": {
7
+ "Authorization": "Bearer ${user_config.api_key}"
8
+ }
9
+ }
10
+ }
11
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 farm3
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,93 @@
1
- # Temporary Holding Version
1
+ # farm3 para o Claude Code
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Este plugin conecta o **farm3** ao **Claude Code**. Depois de instalar, você pede em português e o
4
+ Claude consulta e gerencia o seu tenant: perfis, segmentos, funis, ativações, campanhas,
5
+ conectores, LGPD, recomendações do agente e configurações.
6
+
7
+ O plugin instala duas coisas:
8
+
9
+ - **Servidor MCP `farm3`** — as tools da plataforma (leitura e, com a chave certa, escrita).
10
+ - **Skill `farm3`** — ensina o Claude a usar as tools: mapa por espaço, fluxos típicos e o que só
11
+ pode ser feito no painel.
12
+
13
+ > Ainda não tem o Claude Code? Instale pelo guia oficial em https://claude.com/claude-code.
14
+
15
+ ## Instalação
16
+
17
+ ### 1. Crie uma chave de API com escopo MCP
18
+
19
+ No painel do farm3, vá em **Configurações > API > Criar chave** e marque **um** destes escopos:
20
+
21
+ - **MCP — leitura**: o Claude só consulta.
22
+ - **MCP — leitura e escrita**: o Claude também cria e altera (sempre pedindo sua confirmação).
23
+
24
+ A chave aparece uma vez só; o próprio painel mostra os comandos de instalação já com ela.
25
+ Uma chave MCP não pode ter o escopo de ingestão (SDK) junto: use chaves separadas.
26
+
27
+ A chave age com o **papel atual** de quem a criou no tenant (VIEWER, EDITOR ou ADMIN). Se essa
28
+ pessoa perder acesso ao tenant, a chave para de funcionar.
29
+
30
+ ### 2. Instale o plugin
31
+
32
+ No terminal:
33
+
34
+ ```bash
35
+ claude plugin marketplace add https://farm3.io/claude/marketplace.json
36
+ claude plugin install farm3@farm3 --config api_key=cdp_live_...
37
+ ```
38
+
39
+ Ou, dentro do Claude Code, `/plugin marketplace add https://farm3.io/claude/marketplace.json` e
40
+ `/plugin install farm3@farm3`: o Claude Code pede a chave na instalação.
41
+
42
+ A chave fica no armazenamento seguro do Claude Code (não em arquivo de configuração). Para trocá-la
43
+ depois: `claude plugin configure farm3@farm3` (ou `/plugin` → Installed → Configure options).
44
+
45
+ O plugin é público: vem do pacote npm [`@farm3/claude-plugin`](https://www.npmjs.com/package/@farm3/claude-plugin),
46
+ e nenhuma conta no GitHub é necessária.
47
+
48
+ ### 3. Confira
49
+
50
+ ```
51
+ /mcp
52
+ ```
53
+
54
+ O servidor **`farm3`** deve aparecer conectado. Depois é só pedir, por exemplo:
55
+
56
+ - "Resuma o Hoje do farm3 e liste as recomendações pendentes."
57
+ - "Quantos clientes compraram nos últimos 30 dias e não abriram e-mail? Monte um segmento."
58
+ - "Algum conector está com erro?"
59
+ - "Tem pedido de titular LGPD aberto?"
60
+
61
+ ## Ambiente local (desenvolvimento)
62
+
63
+ Por padrão o plugin fala com `https://app.farm3.io`. Para usar a API local, troque a URL nas
64
+ opções do plugin:
65
+
66
+ ```bash
67
+ claude plugin configure farm3@farm3 --config api_url=http://localhost:3000 --config api_key=cdp_live_...
68
+ ```
69
+
70
+ Para testar mudanças do próprio plugin sem publicar, use o marketplace do repositório (fonte
71
+ local): `claude plugin marketplace add /caminho/para/farm3`.
72
+
73
+ ## Publicação (time farm3)
74
+
75
+ 1. Suba a versão em `plugins/farm3/package.json` **e** em `.claude-plugin/plugin.json` (o Claude Code
76
+ usa a versão do `plugin.json` para atualizar).
77
+ 2. `pnpm plugin:release:dry` para conferir o pacote (valida o plugin antes).
78
+ 3. `pnpm plugin:release` no seu terminal (autenticação web do npm, org `farm3`).
79
+ 4. O marketplace público é `apps/site/public/claude/marketplace.json`, publicado com o site em
80
+ `https://farm3.io/claude/marketplace.json`. Ele aceita `^1.0.0`, então versões compatíveis
81
+ chegam sem mudar o JSON; uma versão maior (2.x) exige atualizar o `version` dele.
82
+
83
+ ## Problemas comuns
84
+
85
+ | Sintoma | Causa provável |
86
+ | --- | --- |
87
+ | `401` ao conectar | A chave configurada no plugin está errada (reconfigure com `claude plugin configure farm3@farm3`); ou não tem escopo MCP; ou foi revogada/expirou; ou quem a criou foi removido do tenant. |
88
+ | Só aparecem tools de leitura | A chave é **MCP — leitura**. Crie uma com **MCP — leitura e escrita**. |
89
+ | Escrita recusada por permissão | O papel atual de quem criou a chave não permite essa ação (ex.: VIEWER). |
90
+ | "Não encontrado" | O id é de outro tenant ou não existe. Tudo é do tenant da chave. |
91
+ | Algo que não existe como tool | Criar API keys, conectar conector por OAuth, excluir perfil/tenant/conector/membro, checkout, coprodução e admin são feitos no painel. |
92
+
93
+ Trate a chave como senha: não a coloque em arquivos versionados nem no histórico do shell compartilhado.
package/package.json CHANGED
@@ -1,6 +1,31 @@
1
1
  {
2
2
  "name": "@farm3/claude-plugin",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "Plugin do farm3 para o Claude Code: servidor MCP (perfis, segmentos, funis, ativações, análises, conectores, LGPD) e a skill farm3",
5
+ "keywords": [
6
+ "farm3",
7
+ "cdp",
8
+ "claude-code",
9
+ "claude-plugin",
10
+ "mcp"
11
+ ],
12
+ "homepage": "https://farm3.io",
13
+ "author": "farm3",
14
+ "license": "MIT",
15
+ "files": [
16
+ ".claude-plugin",
17
+ ".mcp.json",
18
+ "skills",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "scripts": {
23
+ "validate": "claude plugin validate .",
24
+ "prepublishOnly": "npm run validate",
25
+ "release": "npm publish --auth-type=web",
26
+ "release:dry": "npm publish --dry-run"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ }
31
+ }
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: farm3
3
+ description: >-
4
+ Opera o farm3 (CDP para infoprodutores) pelo servidor MCP `farm3` (tools `mcp__farm3__*`).
5
+ Use quando a pessoa quiser consultar ou gerenciar perfis de clientes, identidades, eventos,
6
+ segmentos, funis, ativações (destinos de e-mail, públicos de anúncios, webhooks de saída),
7
+ campanhas e ROAS, análises (receita, RFM, LTV, retenção), conectores e saúde da ingestão de
8
+ dados, LGPD (solicitações de titulares, consentimentos, auditoria), recomendações e alertas do
9
+ agente (o "Hoje"), notificações, equipe, plano/cobrança ou configurações do tenant — ou quando
10
+ mencionar "farm3", "CDP", "meu tenant", "montar um segmento", "mandar público para o Meta/Google",
11
+ "o que o agente recomendou", "por que o conector parou", "pedido de titular". Requer o servidor
12
+ `farm3` conectado (`/mcp` → farm3 conectado), configurado com uma API key de escopo MCP.
13
+ ---
14
+
15
+ # farm3 via MCP
16
+
17
+ Tudo acontece no **tenant da API key**. Um recurso de outro tenant (ou inexistente) volta como
18
+ **"não encontrado"** — não insista com o mesmo id; liste de novo para achar o certo.
19
+
20
+ ## Mapa: espaços do produto → tools
21
+
22
+ | Espaço | Prefixos das tools |
23
+ | --- | --- |
24
+ | **Hoje** | `today_overview`, `recommendations_*`, `action_*`, `signals_*`, `forecasts_list`, `metrics_*`, `intelligence_*`, `notifications_*` |
25
+ | **Clientes** | `profiles_*`/`profile_*`, `identity_*`, `events_*`/`event_*`, `segments_*`/`segment_*`, `funnels_*`/`funnel_*` |
26
+ | **Ações** | `email_destinations_*`, `ads_*`, `outbound_webhooks_*` |
27
+ | **Análises** | `analytics_*`, `rfm_*`, `ltv_*`, `campaign_*` |
28
+ | **Dados** | `connectors_*`/`connector_*`, `ingest_*`, `bi_access_*` |
29
+ | **Governança** | `lgpd_*`, `audit_*` |
30
+ | **Configurações** | `tenant_get`, `settings_*`, `team_*`, `onboarding_get`, `billing_*`, `coproductions_*` |
31
+
32
+ Os nomes exatos e os parâmetros estão no catálogo do servidor; confira-os antes de chamar.
33
+
34
+ ## Fluxos típicos
35
+
36
+ **Montar um segmento e ativá-lo**
37
+ 1. `segments_list` para ver se já existe algo parecido.
38
+ 2. `segment_preview` com as condições (QueryGroup) — mostre à pessoa a contagem e a amostra.
39
+ 3. Com o "ok", `segment_create`.
40
+ 4. Ative: `ads_activation_create` (público em plataforma de anúncio) ou um destino de e-mail
41
+ (`email_destinations_*`).
42
+
43
+ **Revisar o Hoje**
44
+ 1. `today_overview` para o resumo.
45
+ 2. `recommendations_list` para as propostas do agente; detalhe a que interessar.
46
+ 3. Só depois de a pessoa decidir: `action_approve` (ou rejeitar/adiar).
47
+
48
+ **Saúde dos dados**
49
+ 1. `connectors_list` e o status de cada conector (`connectors_status`).
50
+ 2. Se um conector estiver atrasado ou com erro, ofereça `connector_sync`.
51
+ 3. `ingest_overview` para o volume e os erros da ingestão pelo SDK.
52
+
53
+ **Atender um titular (LGPD)**
54
+ 1. `lgpd_requests_list` para as solicitações pendentes; detalhe a escolhida.
55
+ 2. Explique o que a aprovação faz (exportar, corrigir, anonimizar) e confirme.
56
+ 3. `lgpd_request_approve` ou `lgpd_request_reject` com o motivo.
57
+
58
+ ## Regras
59
+
60
+ 1. **Leia antes de escrever.** Liste/detalhe o recurso antes de alterá-lo; em segmentos, sempre
61
+ `segment_preview` antes de `segment_create`.
62
+ 2. **Confirme com a pessoa antes de qualquer escrita**, dizendo o que vai mudar e o alcance
63
+ (quantos perfis, qual plataforma, qual custo). Em ações destrutivas ou irreversíveis
64
+ (arquivar, revogar, anonimizar, enviar público, disparar sync), peça confirmação explícita.
65
+ 3. **"Não encontrado"** = id de outro tenant ou inexistente. Não é falha do servidor.
66
+ 4. **Chave só de leitura não vê tools de escrita.** Se a tool de escrita não aparece, a chave é
67
+ `mcp:read`; a pessoa precisa de uma chave `mcp:write` (Configurações > API). Mesmo com
68
+ `mcp:write`, cada escrita respeita o papel atual (VIEWER/EDITOR/ADMIN) de quem criou a chave,
69
+ e toda escrita fica na auditoria.
70
+ 5. **Respostas grandes são truncadas:** use filtros e paginação (`page`/`limit`).
71
+
72
+ ## Fora do MCP (faça no painel)
73
+
74
+ Por decisão de segurança, isto **não** existe como tool — oriente a pessoa a usar o painel do farm3:
75
+
76
+ - Criar, revogar ou rotacionar API keys e credenciais de acesso BI.
77
+ - Conectar conectores por OAuth — `connector_connect_url` devolve o link para a pessoa abrir.
78
+ - Excluir perfil (anonimização LGPD), tenant, conector ou membro da equipe.
79
+ - Checkout / troca de plano.
80
+ - Aceitar ou propor coprodução.
81
+ - Administração da plataforma e Marketplace.