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 CHANGED
@@ -1,10 +1,13 @@
1
1
  # auxiliar-mcp
2
2
 
3
- MCP server that keeps your AI agent's infrastructure knowledge current.
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 still thinks SendGrid has a free tier. It doesn't (removed March 2025). It recommends Auth.js which is in maintenance mode. It quotes Neon at $19/month pricing is now usage-based from $0.
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 current, Chrome-verified data about 74 cloud services across 16 categories.
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
- | `recommend_service` | Picks the best service based on your constraints (framework, budget, region, GDPR, edge, lock-in) |
24
- | `get_pricing` | Chrome-verified pricing including JS-rendered pages agents can't read via WebFetch |
25
- | `get_risks` | Risk flags, gotchas, and recent breaking changes |
26
- | `check_compatibility` | Warns about known conflicts between services (e.g., Turso + Prisma needs adapter) |
27
- | `setup_service` | CLI commands, signup URLs, env vars, estimated setup time |
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
- ## Example
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
- - Pricing verified by browsing actual service websites (Chrome DevTools, not WebFetch)
75
- - Updated March 2026
76
- - Tested with 50+ agent runs across 8 iterations
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 full service entries
100
- - [GitHub](https://github.com/Tlalvarez/Auxiliar-ai)
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/changelog/feed.xml" },
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://status.stripe.com/history.rss" },
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/changelog/feed.xml" },
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/history.rss" },
68
- { type: "changelog", url: "https://neon.tech/changelog/feed.xml" },
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/feed.xml" },
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://status.railway.com/history.rss" },
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/rss.xml" },
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/changelog/feed.xml" },
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.0",
4
- "description": "MCP server that keeps your AI agent's infrastructure knowledge current. Chrome-verified pricing, risk flags, compatibility checks, setup guides for 77 cloud services and local agent tools, plus /solve/ task rankings with reproducible evals for agent-installable tooling (skills, MCPs, APIs, local binaries).",
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
- "neon",
33
- "resend",
34
- "supabase",
35
- "vercel",
36
- "stripe",
37
- "infrastructure"
52
+ "infrastructure",
53
+ "surya",
54
+ "tesseract",
55
+ "google-document-ai"
38
56
  ],
39
57
  "license": "MIT",
40
58
  "repository": {