auxiliar-mcp 0.9.0 → 0.9.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 +64 -28
- package/dist/data/event-sources.js +9 -10
- package/package.json +26 -8
package/README.md
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
# auxiliar-mcp
|
|
2
2
|
|
|
3
|
-
MCP server that
|
|
3
|
+
The MCP server that tells your agent **which tool to install** for a task, and **which cloud service to pick** for a stack.
|
|
4
4
|
|
|
5
|
-
Your agent
|
|
5
|
+
Your agent is intelligent but stuck. It doesn't know Surya beats Tesseract by 1.5pp on word accuracy for Brazilian NFS-e invoices. It doesn't know SendGrid killed its free tier. It guesses, installs the wrong thing, and you burn 30 minutes.
|
|
6
6
|
|
|
7
|
-
**auxiliar-mcp** gives your agent
|
|
7
|
+
**auxiliar-mcp** gives your agent reproducible eval-backed answers for the two questions it hits most:
|
|
8
|
+
|
|
9
|
+
1. **"What installable tool should I use for task X?"** — skills, MCPs, vendor APIs, local binaries — ranked on real-world corpora, via `solve_task`.
|
|
10
|
+
2. **"What cloud service should I pick for Y?"** — Chrome-verified pricing, risks, compatibility, setup commands for 77 services across 16 categories, via `recommend_service`.
|
|
8
11
|
|
|
9
12
|
## Install
|
|
10
13
|
|
|
@@ -16,22 +19,53 @@ claude mcp add auxiliar -- npx auxiliar-mcp
|
|
|
16
19
|
npx auxiliar-mcp
|
|
17
20
|
```
|
|
18
21
|
|
|
19
|
-
## Tools
|
|
22
|
+
## Tools (8)
|
|
20
23
|
|
|
21
24
|
| Tool | What it does |
|
|
22
25
|
|------|-------------|
|
|
23
|
-
| `
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
26
|
+
| `solve_task` | Get the ranked list of installable tools for a job-to-be-done (e.g., `pdf-text-extraction-mcp`, `nfs-e`, `boleto`, `receipt-parsing`, `bookkeeping-ocr`) with scorecards, install commands, FAQ, alternatives considered, and methodological caveats. |
|
|
27
|
+
| `list_solve_tasks` | Discover every `/solve/` task ranking available — slugs, top picks, categories, agent compatibility. |
|
|
28
|
+
| `recommend_service` | Picks the best cloud service for your constraints (framework, budget, region, GDPR, edge, lock-in). |
|
|
29
|
+
| `get_pricing` | Chrome-verified pricing — including JS-rendered pages agents can't read via WebFetch. |
|
|
30
|
+
| `get_risks` | Risk flags, gotchas, recent breaking changes. |
|
|
31
|
+
| `check_compatibility` | Warns about known conflicts between services (e.g., Turso + Prisma needs adapter). |
|
|
32
|
+
| `setup_service` | CLI commands, signup URLs, env vars, estimated setup time. |
|
|
33
|
+
| `list_services` | Browse the full 77-service catalog, filtered by category. |
|
|
34
|
+
|
|
35
|
+
## When to use `solve_task`
|
|
36
|
+
|
|
37
|
+
Your agent needs an **installable tool** (skill, MCP, vendor API, or local binary) and you want a reproducible evaluation, not vibes.
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Agent: "I need to extract text from Brazilian NFS-e invoices, boletos, and phone-photo receipts. What should I install?"
|
|
28
41
|
|
|
29
|
-
|
|
42
|
+
→ solve_task(task_slug="pdf-text-extraction-mcp")
|
|
43
|
+
# aliases work too: "pdf", "ocr", "nfs-e", "boleto", "receipt-parsing", "bookkeeping-ocr", "invoice-extraction"
|
|
44
|
+
|
|
45
|
+
Returns (truncated):
|
|
46
|
+
{
|
|
47
|
+
"answer": "Install Surya (pip install surya-ocr + pin transformers<5.0.0). It led our 10-document real-world corpus on word accuracy (76.9%) and layout preservation (7.0/10), free, local. Tesseract 5 runs 14× faster for throughput-critical workflows. Google Document AI wins on phone-photo receipts specifically...",
|
|
48
|
+
"candidates": [
|
|
49
|
+
{ "slug": "surya", "rank": 1, "scorecard": {"word_accuracy": 0.769, "layout": 7, "p50_latency_sec": 22.1, "install_friction": 7, "cost_per_10_docs_usd": 0} },
|
|
50
|
+
{ "slug": "tesseract", "rank": 2, "scorecard": {"word_accuracy": 0.754, "layout": 5, "p50_latency_sec": 1.6, "install_friction": 3, "cost_per_10_docs_usd": 0} },
|
|
51
|
+
{ "slug": "google-document-ai", "rank": 3, "scorecard": {"word_accuracy": 0.697, "layout": 5.7, "p50_latency_sec": 3.8, "install_friction": 7, "cost_per_10_docs_usd": 0.069} }
|
|
52
|
+
],
|
|
53
|
+
"corpus_summary": "10 real-world documents: native-text PDFs, legal docs, Brazilian corporate-registry scans, NFS-e invoices, boletos, phone-photo receipts.",
|
|
54
|
+
"alternatives_considered": [ /* yescan, Mistral OCR, pdf-reader-mcp — dropped with reasons */ ],
|
|
55
|
+
"faq": [ /* e.g., "Why does all score 0 on the boleto?" */ ]
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Full page with reproducible commands: https://auxiliar.ai/solve/pdf-text-extraction-mcp/
|
|
60
|
+
|
|
61
|
+
## When to use `recommend_service`
|
|
62
|
+
|
|
63
|
+
Your agent needs a **cloud service** (database, email provider, auth, payments, etc.).
|
|
30
64
|
|
|
31
65
|
```
|
|
32
66
|
Agent: "I need a database for my Next.js app. Budget is free, deployed to Cloudflare Workers."
|
|
33
67
|
|
|
34
|
-
→ recommend_service(need="database", framework="nextjs", constraints="edge, zero cold starts")
|
|
68
|
+
→ recommend_service(need="database", framework="nextjs", budget="free", constraints="edge, zero cold starts")
|
|
35
69
|
|
|
36
70
|
Returns:
|
|
37
71
|
{
|
|
@@ -40,17 +74,12 @@ Returns:
|
|
|
40
74
|
"pricing": { "free_tier": "5 GB storage, 100 databases" },
|
|
41
75
|
"risks": ["Not PostgreSQL — limited ORM support"],
|
|
42
76
|
"migration_difficulty": "high",
|
|
43
|
-
"key_features": ["SQLite/libSQL", "embedded replicas", "zero cold starts"],
|
|
44
|
-
"mcp_available": false,
|
|
45
|
-
"cli_available": true,
|
|
46
77
|
"cli_install": "brew install tursodatabase/tap/turso",
|
|
47
|
-
"alternatives": [
|
|
48
|
-
{ "provider": "neon", "trade_off": "Has cold starts on free tier" }
|
|
49
|
-
]
|
|
78
|
+
"alternatives": [{"provider": "neon", "trade_off": "Has cold starts on free tier"}]
|
|
50
79
|
}
|
|
51
80
|
```
|
|
52
81
|
|
|
53
|
-
## Services Covered
|
|
82
|
+
## Services Covered (77)
|
|
54
83
|
|
|
55
84
|
**Database:** Neon, Supabase, Turso, PlanetScale, Render Postgres, AWS RDS, Railway Postgres, Cloudflare D1
|
|
56
85
|
**Email:** Resend, Postmark, SendGrid, AWS SES, Mailgun, Listmonk
|
|
@@ -68,17 +97,23 @@ Returns:
|
|
|
68
97
|
**SMS:** Twilio, Vonage, MessageBird
|
|
69
98
|
**Feature Flags:** LaunchDarkly, Statsig, Flagsmith, Unleash
|
|
70
99
|
**Cron:** Inngest, Trigger.dev, QStash, Vercel Cron, Cloudflare Cron
|
|
100
|
+
**PDF / OCR (via solve_task):** Surya, Tesseract 5, Google Document AI
|
|
101
|
+
|
|
102
|
+
## /solve/ Tasks Available
|
|
103
|
+
|
|
104
|
+
| Slug | Top pick | Corpus | Categories |
|
|
105
|
+
|------|----------|--------|-----------|
|
|
106
|
+
| `pdf-text-extraction-mcp` | Surya | 10 Brazilian docs incl. NFS-e, boleto, phone-photo receipts | pdf-processing, ocr, agent-tools |
|
|
107
|
+
|
|
108
|
+
More `/solve/` rankings added as walkthroughs run. Each page includes its reproducible command so you can re-run the eval yourself.
|
|
71
109
|
|
|
72
110
|
## Data Quality
|
|
73
111
|
|
|
74
|
-
-
|
|
75
|
-
- Updated
|
|
76
|
-
-
|
|
77
|
-
- Scores 9/10 on recommendation accuracy
|
|
78
|
-
- 47 category aliases (agents can query "llm-api", "file-storage", "vector-db", etc.)
|
|
79
|
-
- 27 compatibility rules with cross-service conflict detection
|
|
112
|
+
- **/solve/ evals:** reproducible corpus + harness + scoring per task. Ground truth is LLM-drafted, human-finalized. Published commands can be re-run locally.
|
|
113
|
+
- **Cloud-service pricing:** Chrome-verified (actual service websites, not training data). Updated through 2026-04.
|
|
114
|
+
- **Trust scores:** 50+ agent runs across 8 iterations; 47 category aliases; 27 compatibility rules.
|
|
80
115
|
|
|
81
|
-
## Constraints You Can Use
|
|
116
|
+
## Constraints You Can Use on `recommend_service`
|
|
82
117
|
|
|
83
118
|
| Constraint | Example |
|
|
84
119
|
|-----------|---------|
|
|
@@ -92,12 +127,13 @@ Returns:
|
|
|
92
127
|
|
|
93
128
|
## Privacy
|
|
94
129
|
|
|
95
|
-
The MCP server pings `auxiliar.ai/api/` on each tool call for analytics. Only query parameters are sent (e.g., `?need=database&framework=nextjs`). No personal data, no API keys, no project info. Works offline with bundled data if the ping fails.
|
|
130
|
+
The MCP server pings `auxiliar.ai/api/` on each tool call for analytics. Only query parameters are sent (e.g., `?need=database&framework=nextjs` or `?task_slug=pdf-text-extraction-mcp`). No personal data, no API keys, no project info. Works offline with bundled data if the ping fails.
|
|
96
131
|
|
|
97
132
|
## Links
|
|
98
133
|
|
|
99
|
-
- [auxiliar.ai](https://auxiliar.ai) — comparison site with
|
|
100
|
-
- [
|
|
134
|
+
- [auxiliar.ai](https://auxiliar.ai) — the comparison site with service entries and `/solve/` task rankings
|
|
135
|
+
- [/solve/pdf-text-extraction-mcp](https://auxiliar.ai/solve/pdf-text-extraction-mcp/) — the OCR walkthrough
|
|
136
|
+
- [GitHub](https://github.com/Tlalvarez/Auxiliar-ai) — source + reproducible eval harness under `scripts/ocr-walkthrough/`
|
|
101
137
|
|
|
102
138
|
## License
|
|
103
139
|
|
|
@@ -36,7 +36,7 @@ export const eventSources = [
|
|
|
36
36
|
name: "Vercel",
|
|
37
37
|
sources: [
|
|
38
38
|
{ type: "status", url: "https://www.vercel-status.com/history.rss" },
|
|
39
|
-
{ type: "changelog", url: "https://vercel.com/
|
|
39
|
+
{ type: "changelog", url: "https://vercel.com/atom" },
|
|
40
40
|
{
|
|
41
41
|
type: "security",
|
|
42
42
|
url: "https://vercel.com/kb/bulletin",
|
|
@@ -48,7 +48,7 @@ export const eventSources = [
|
|
|
48
48
|
slug: "stripe",
|
|
49
49
|
name: "Stripe",
|
|
50
50
|
sources: [
|
|
51
|
-
{ type: "status", url: "https://
|
|
51
|
+
{ type: "status", url: "https://www.stripestatus.com/history.rss" },
|
|
52
52
|
{ type: "changelog", url: "https://stripe.com/blog/feed.rss" },
|
|
53
53
|
],
|
|
54
54
|
},
|
|
@@ -57,15 +57,15 @@ export const eventSources = [
|
|
|
57
57
|
name: "Supabase",
|
|
58
58
|
sources: [
|
|
59
59
|
{ type: "status", url: "https://status.supabase.com/history.rss" },
|
|
60
|
-
{ type: "changelog", url: "https://supabase.com/
|
|
60
|
+
{ type: "changelog", url: "https://supabase.com/feed.xml" },
|
|
61
61
|
],
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
slug: "neon",
|
|
65
65
|
name: "Neon",
|
|
66
66
|
sources: [
|
|
67
|
-
{ type: "status", url: "https://neonstatus.com/
|
|
68
|
-
{ type: "changelog", url: "https://neon.
|
|
67
|
+
{ type: "status", url: "https://neonstatus.com/pages/6878fc85709daa75be6c7e3c/rss" },
|
|
68
|
+
{ type: "changelog", url: "https://neon.com/blog/rss.xml" },
|
|
69
69
|
],
|
|
70
70
|
},
|
|
71
71
|
{
|
|
@@ -73,7 +73,7 @@ export const eventSources = [
|
|
|
73
73
|
name: "Clerk",
|
|
74
74
|
sources: [
|
|
75
75
|
{ type: "status", url: "https://status.clerk.com/history.rss" },
|
|
76
|
-
{ type: "changelog", url: "https://clerk.com/changelog/
|
|
76
|
+
{ type: "changelog", url: "https://clerk.com/changelog/atom.xml" },
|
|
77
77
|
],
|
|
78
78
|
},
|
|
79
79
|
{
|
|
@@ -92,8 +92,7 @@ export const eventSources = [
|
|
|
92
92
|
slug: "railway",
|
|
93
93
|
name: "Railway",
|
|
94
94
|
sources: [
|
|
95
|
-
{ type: "status", url: "https://
|
|
96
|
-
{ type: "changelog", url: "https://blog.railway.com/feed.xml" },
|
|
95
|
+
{ type: "status", url: "https://railway.instatus.com/history.rss" },
|
|
97
96
|
],
|
|
98
97
|
},
|
|
99
98
|
{
|
|
@@ -101,7 +100,7 @@ export const eventSources = [
|
|
|
101
100
|
name: "Render",
|
|
102
101
|
sources: [
|
|
103
102
|
{ type: "status", url: "https://status.render.com/history.rss" },
|
|
104
|
-
{ type: "changelog", url: "https://render.com/changelog/
|
|
103
|
+
{ type: "changelog", url: "https://render.com/changelog/feed.xml" },
|
|
105
104
|
],
|
|
106
105
|
},
|
|
107
106
|
{
|
|
@@ -109,7 +108,7 @@ export const eventSources = [
|
|
|
109
108
|
name: "Resend",
|
|
110
109
|
sources: [
|
|
111
110
|
{ type: "status", url: "https://resend-status.com/history.rss" },
|
|
112
|
-
{ type: "changelog", url: "https://resend.com/
|
|
111
|
+
{ type: "changelog", url: "https://resend.com/blog/index.xml" },
|
|
113
112
|
],
|
|
114
113
|
},
|
|
115
114
|
{
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "auxiliar-mcp",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.9.1",
|
|
4
|
+
"description": "Agent-installable-tool rankings (OCR, PDF extraction, NFS-e, bookkeeping, and more) for Claude Code, Cursor, Claude Desktop, OpenClaw — evaluated on real-world corpora. Call solve_task to get the best skill/MCP/API/local binary for a task, ranked by word accuracy, layout, latency, cost, and install friction. Also Chrome-verified pricing, risks, and setup for 77 cloud services.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
7
7
|
"bin": {
|
|
@@ -24,17 +24,35 @@
|
|
|
24
24
|
"model-context-protocol",
|
|
25
25
|
"ai-agent",
|
|
26
26
|
"claude-code",
|
|
27
|
+
"claude-desktop",
|
|
27
28
|
"cursor",
|
|
28
29
|
"windsurf",
|
|
30
|
+
"openclaw",
|
|
31
|
+
"clawhub",
|
|
32
|
+
"ocr",
|
|
33
|
+
"pdf",
|
|
34
|
+
"pdf-extraction",
|
|
35
|
+
"pdf-ocr",
|
|
36
|
+
"document-ai",
|
|
37
|
+
"invoice-extraction",
|
|
38
|
+
"nfs-e",
|
|
39
|
+
"boleto",
|
|
40
|
+
"bookkeeping",
|
|
41
|
+
"brazilian-invoice",
|
|
42
|
+
"receipt-parsing",
|
|
43
|
+
"solve-task",
|
|
44
|
+
"task-ranking",
|
|
45
|
+
"agent-tools",
|
|
46
|
+
"agent-skills",
|
|
47
|
+
"tool-selection",
|
|
48
|
+
"agent-upgrade",
|
|
29
49
|
"cloud-services",
|
|
30
50
|
"pricing",
|
|
31
51
|
"developer-tools",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"stripe",
|
|
37
|
-
"infrastructure"
|
|
52
|
+
"infrastructure",
|
|
53
|
+
"surya",
|
|
54
|
+
"tesseract",
|
|
55
|
+
"google-document-ai"
|
|
38
56
|
],
|
|
39
57
|
"license": "MIT",
|
|
40
58
|
"repository": {
|