@kadoa/mcp 0.1.2 → 0.1.3
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 +119 -22
- package/dist/index.js +5 -5
- package/package.json +5 -6
package/README.md
CHANGED
|
@@ -1,30 +1,16 @@
|
|
|
1
1
|
# Kadoa MCP Server
|
|
2
2
|
|
|
3
|
-
Use [Kadoa](https://kadoa.com) from Claude Desktop, Cursor,
|
|
3
|
+
Use [Kadoa](https://kadoa.com) from Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI, and other MCP clients.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
### Claude Code
|
|
8
8
|
|
|
9
|
-
Add for the current project:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
claude mcp add --transport stdio kadoa -- npx -y @kadoa/mcp
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Or add for all projects:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
claude mcp add --transport stdio -s user kadoa -- npx -y @kadoa/mcp
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Set your API key:
|
|
22
|
-
|
|
23
9
|
```bash
|
|
24
|
-
|
|
10
|
+
claude mcp add --transport stdio -e KADOA_API_KEY=tk-your_api_key kadoa -- npx -y @kadoa/mcp
|
|
25
11
|
```
|
|
26
12
|
|
|
27
|
-
|
|
13
|
+
Add `-s user` to enable for all projects. If you have the [Kadoa CLI](https://www.npmjs.com/package/@kadoa/cli) installed, you can skip the `-e` flag — just run `kadoa login` and the MCP will use your saved key automatically.
|
|
28
14
|
|
|
29
15
|
### Claude Desktop
|
|
30
16
|
|
|
@@ -64,6 +50,45 @@ Add to `.cursor/mcp.json`:
|
|
|
64
50
|
}
|
|
65
51
|
```
|
|
66
52
|
|
|
53
|
+
### Codex
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
codex mcp add kadoa -- npx -y @kadoa/mcp
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Or add to `~/.codex/config.toml`:
|
|
60
|
+
|
|
61
|
+
```toml
|
|
62
|
+
[mcp_servers.kadoa]
|
|
63
|
+
command = "npx"
|
|
64
|
+
args = ["-y", "@kadoa/mcp"]
|
|
65
|
+
|
|
66
|
+
[mcp_servers.kadoa.env]
|
|
67
|
+
KADOA_API_KEY = "tk-your_api_key"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Gemini CLI
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
gemini mcp add -t stdio kadoa npx -- -y @kadoa/mcp
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Or add to `~/.gemini/settings.json`:
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"mcpServers": {
|
|
81
|
+
"kadoa": {
|
|
82
|
+
"command": "npx",
|
|
83
|
+
"args": ["-y", "@kadoa/mcp"],
|
|
84
|
+
"env": {
|
|
85
|
+
"KADOA_API_KEY": "tk-your_api_key"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
67
92
|
## Get Your API Key
|
|
68
93
|
|
|
69
94
|
Get your API key from [kadoa.com/settings](https://kadoa.com/settings).
|
|
@@ -83,12 +108,61 @@ Get your API key from [kadoa.com/settings](https://kadoa.com/settings).
|
|
|
83
108
|
|
|
84
109
|
## Usage Examples
|
|
85
110
|
|
|
86
|
-
|
|
111
|
+
Once the MCP server is configured, you can manage the full workflow lifecycle through natural conversation. Here are a few common operations shown as Claude Code sessions.
|
|
87
112
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
113
|
+
### Create and run a workflow
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
> You: Create a workflow to extract product names, prices, and ratings
|
|
117
|
+
from https://example-shop.com/products
|
|
118
|
+
|
|
119
|
+
Claude calls create_workflow and returns the workflow ID, proposed
|
|
120
|
+
navigation steps, and data schema for your review.
|
|
121
|
+
|
|
122
|
+
> You: The schema looks good. Approve it and kick off a run.
|
|
123
|
+
|
|
124
|
+
Claude calls approve_workflow to activate the workflow, then
|
|
125
|
+
run_workflow to start extraction.
|
|
126
|
+
|
|
127
|
+
> You: Is the run done? Show me the results.
|
|
128
|
+
|
|
129
|
+
Claude checks the run status with get_workflow, then calls fetch_data
|
|
130
|
+
to retrieve the extracted records and display them as a table.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Update a workflow and re-run
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
> You: List my workflows.
|
|
137
|
+
|
|
138
|
+
Claude calls list_workflows and shows all workflows with their
|
|
139
|
+
current status (active, paused, draft, etc.).
|
|
140
|
+
|
|
141
|
+
> You: Update wf_abc123 — add an "availability" field to the schema
|
|
142
|
+
and rename "cost" to "price".
|
|
143
|
+
|
|
144
|
+
Claude calls update_workflow with the new schema, confirms the
|
|
145
|
+
changes, and shows the updated field list.
|
|
146
|
+
|
|
147
|
+
> You: Run it again with the new schema.
|
|
148
|
+
|
|
149
|
+
Claude calls run_workflow and waits for completion, then fetches
|
|
150
|
+
the latest data with fetch_data so you can verify the changes.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Monitor and clean up
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
> You: Show me all active workflows and their last run results.
|
|
157
|
+
|
|
158
|
+
Claude calls list_workflows, filters to active ones, then calls
|
|
159
|
+
fetch_data for each to summarize the latest extraction results.
|
|
160
|
+
|
|
161
|
+
> You: Delete the ones that haven't produced data in the last week.
|
|
162
|
+
|
|
163
|
+
Claude identifies stale workflows from the results and calls
|
|
164
|
+
delete_workflow for each, confirming before proceeding.
|
|
165
|
+
```
|
|
92
166
|
|
|
93
167
|
## Troubleshooting
|
|
94
168
|
|
|
@@ -110,6 +184,29 @@ bun run test # Run tests
|
|
|
110
184
|
bun run build # Build for distribution
|
|
111
185
|
```
|
|
112
186
|
|
|
187
|
+
### Connecting to local services
|
|
188
|
+
|
|
189
|
+
To develop and test against a local Kadoa backend (instead of the production API), point the MCP at your local `public-api` service using the `KADOA_PUBLIC_API_URI` environment variable.
|
|
190
|
+
|
|
191
|
+
**Prerequisites:** the `public-api` service must be running locally (default port `12380`). You also need a local API key — check your backend seed data or API key table.
|
|
192
|
+
|
|
193
|
+
**Run the MCP server locally:**
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
KADOA_PUBLIC_API_URI=http://localhost:12380 KADOA_API_KEY=tk-your_local_api_key bun src/index.ts
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Add as a local MCP in Claude Code** (alongside the remote one):
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
claude mcp add --transport stdio \
|
|
203
|
+
-e KADOA_PUBLIC_API_URI=http://localhost:12380 \
|
|
204
|
+
-e KADOA_API_KEY=tk-your_local_api_key \
|
|
205
|
+
kadoa-local -- bun /path/to/kadoa-mcp/src/index.ts
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
This registers a `kadoa-local` server that coexists with the production `kadoa` server, so you can use both without conflicts (`mcp__kadoa__*` for prod, `mcp__kadoa-local__*` for local).
|
|
209
|
+
|
|
113
210
|
## License
|
|
114
211
|
|
|
115
212
|
MIT
|
package/dist/index.js
CHANGED
|
@@ -34250,7 +34250,7 @@ class KadoaMcpServer {
|
|
|
34250
34250
|
tools: [
|
|
34251
34251
|
{
|
|
34252
34252
|
name: "create_workflow",
|
|
34253
|
-
description: "Create a new agentic navigation workflow. If entity and schema are provided, they guide the extraction. Otherwise, the AI agent auto-detects the schema from the page based on the prompt.",
|
|
34253
|
+
description: "Create a new agentic navigation workflow. If entity and schema are provided, they guide the extraction. Otherwise, the AI agent auto-detects the schema from the page based on the prompt. The workflow runs asynchronously and may take several minutes. Do NOT poll or sleep-wait for completion. Instead, return the workflow ID to the user and let them check back later with get_workflow or fetch_data.",
|
|
34254
34254
|
inputSchema: {
|
|
34255
34255
|
type: "object",
|
|
34256
34256
|
properties: {
|
|
@@ -34297,7 +34297,7 @@ class KadoaMcpServer {
|
|
|
34297
34297
|
]
|
|
34298
34298
|
}
|
|
34299
34299
|
},
|
|
34300
|
-
required: ["name"]
|
|
34300
|
+
required: ["name", "example"]
|
|
34301
34301
|
},
|
|
34302
34302
|
description: "Extraction schema fields. If omitted, the AI agent auto-detects the schema."
|
|
34303
34303
|
}
|
|
@@ -34340,7 +34340,7 @@ class KadoaMcpServer {
|
|
|
34340
34340
|
},
|
|
34341
34341
|
{
|
|
34342
34342
|
name: "run_workflow",
|
|
34343
|
-
description: "Run a workflow to extract fresh data",
|
|
34343
|
+
description: "Run a workflow to extract fresh data. The run is asynchronous and may take several minutes. Do NOT poll or sleep-wait for completion. Return the workflow ID to the user and let them check status with get_workflow or fetch results later with fetch_data.",
|
|
34344
34344
|
inputSchema: {
|
|
34345
34345
|
type: "object",
|
|
34346
34346
|
properties: {
|
|
@@ -34359,7 +34359,7 @@ class KadoaMcpServer {
|
|
|
34359
34359
|
},
|
|
34360
34360
|
{
|
|
34361
34361
|
name: "fetch_data",
|
|
34362
|
-
description: "Get extracted data from a workflow",
|
|
34362
|
+
description: "Get extracted data from a workflow. Data is only available after the workflow run has completed (displayState is no longer RUNNING). Do NOT poll or sleep-wait for completion.",
|
|
34363
34363
|
inputSchema: {
|
|
34364
34364
|
type: "object",
|
|
34365
34365
|
properties: {
|
|
@@ -34460,7 +34460,7 @@ class KadoaMcpServer {
|
|
|
34460
34460
|
isRequired: { type: "boolean" },
|
|
34461
34461
|
isUnique: { type: "boolean" }
|
|
34462
34462
|
},
|
|
34463
|
-
required: ["name"]
|
|
34463
|
+
required: ["name", "example"]
|
|
34464
34464
|
},
|
|
34465
34465
|
description: "New extraction schema fields"
|
|
34466
34466
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kadoa/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Kadoa MCP Server — manage workflows from Claude Desktop, Cursor, and other MCP clients",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
"check-types": "tsc --noEmit",
|
|
21
21
|
"test": "BUN_TEST=1 bun test",
|
|
22
22
|
"test:unit": "BUN_TEST=1 bun test tests/unit --timeout=120000",
|
|
23
|
+
"test:e2e": "BUN_TEST=1 bun test tests/e2e --timeout=600000",
|
|
24
|
+
"test:eval": "BUN_TEST=1 bun test tests/evals --timeout=300000",
|
|
23
25
|
"prepublishOnly": "bun run check-types && bun run test:unit && bun run build"
|
|
24
26
|
},
|
|
25
27
|
"dependencies": {
|
|
@@ -27,14 +29,11 @@
|
|
|
27
29
|
"@modelcontextprotocol/sdk": "^1.26.0"
|
|
28
30
|
},
|
|
29
31
|
"devDependencies": {
|
|
32
|
+
"@anthropic-ai/sdk": "^0.78.0",
|
|
30
33
|
"@types/node": "^25.0.3",
|
|
31
34
|
"bun-types": "^1.3.3",
|
|
32
35
|
"typescript": "^5.9.3"
|
|
33
36
|
},
|
|
34
37
|
"keywords": ["kadoa", "mcp", "model-context-protocol", "web-scraping", "data-extraction"],
|
|
35
|
-
"license": "MIT"
|
|
36
|
-
"repository": {
|
|
37
|
-
"type": "git",
|
|
38
|
-
"url": "git+https://github.com/kadoa-org/kadoa-mcp.git"
|
|
39
|
-
}
|
|
38
|
+
"license": "MIT"
|
|
40
39
|
}
|