@forgemeshlabs/utility-grid-mcp 0.1.0 → 0.1.2

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/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Changelog
2
+
3
+ ## 0.1.1
4
+
5
+ - Updated MCP dependencies to resolve security advisories.
6
+ - Added Glama, Docker, Smithery, and official MCP Registry metadata.
7
+ - Clarified free discovery and paid execution behavior.
8
+
9
+ ## 0.1.0
10
+
11
+ - Initial release with six tools for discovering and calling Utility Grid APIs.
package/Dockerfile CHANGED
@@ -1,11 +1,11 @@
1
- FROM node:20-slim
1
+ FROM node:22-bookworm-slim
2
2
 
3
3
  WORKDIR /app
4
4
 
5
5
  COPY package.json package-lock.json ./
6
6
  RUN npm ci --omit=dev
7
7
 
8
- COPY index.js README.md LICENSE server.json glama.json GLAMA.md smithery.yaml ./
8
+ COPY index.js README.md LICENSE SECURITY.md CHANGELOG.md server.json glama.json GLAMA.md smithery.yaml ./
9
9
  RUN chmod +x /app/index.js
10
10
 
11
11
  ENV NODE_ENV=production \
@@ -13,4 +13,4 @@ ENV NODE_ENV=production \
13
13
 
14
14
  USER node
15
15
 
16
- ENTRYPOINT ["node", "index.js"]
16
+ CMD ["node", "index.js"]
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # ForgeMesh Utility Grid — Agent Utility APIs via x402
1
+ # ForgeMesh Utility Grid MCP
2
2
 
3
3
  *A [ForgeMesh Labs](https://forgemesh.io) product.*
4
4
 
5
- **415+ small agent utility jobs behind 6 tools, not 415.** OCR, vision, audio, embeddings, web extraction, dictionary and slang lookups, chess/legal-move logic, math, conversions, time, geo/space data, and x402 ecosystem intelligence — all paid per call in USDC on Base via [x402](https://x402.org). No API key, no account.
5
+ Search and use more than 400 practical APIs without loading hundreds of tools into your agent. Utility Grid exposes six compact MCP tools for OCR, image and audio processing, web extraction, math, conversions, geodata, and more. Catalog discovery is free; API execution is paid per call in USDC on Base through [x402](https://x402.org). No account or API key is required.
6
6
 
7
7
  Rather than exposing one MCP tool per route (unmanageable at this scale and growing), this server exposes a handful of **meta-tools**: browse/search the live catalog, fetch a route's exact call spec, then call any route generically. New routes on the upstream service show up automatically — nothing here is hardcoded to today's catalog.
8
8
 
package/SECURITY.md ADDED
@@ -0,0 +1,15 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a vulnerability
4
+
5
+ Please report security issues privately through GitHub's security advisory
6
+ feature for this repository. Do not open a public issue for a suspected
7
+ vulnerability.
8
+
9
+ Never include wallet private keys, payment signatures, API credentials, or
10
+ other secrets in reports, logs, screenshots, or example configuration.
11
+
12
+ ## Wallet safety
13
+
14
+ Paid tools require a dedicated, low-balance Base wallet. Never use a primary
15
+ wallet. The three discovery tools work without any wallet configuration.
package/glama.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://glama.ai/mcp/schemas/server.json",
3
3
  "name": "@forgemeshlabs/utility-grid-mcp",
4
- "description": "415+ agent utility jobs (OCR, vision, audio, math, conversions, geo/space, x402 intelligence) behind 6 meta-tools with free discovery and generic paid calling via x402.",
4
+ "description": "Discover and call 400+ practical APIs through six MCP tools. Search the catalog free, then pay per call with x402 USDC on Base.",
5
5
  "maintainers": [
6
6
  "clawdbotworker"
7
7
  ],
package/index.js CHANGED
@@ -11,7 +11,7 @@ const { privateKeyToAccount } = require("viem/accounts");
11
11
  const { createPublicClient, http } = require("viem");
12
12
  const { base } = require("viem/chains");
13
13
 
14
- const VERSION = "0.1.0";
14
+ const VERSION = "0.1.2";
15
15
  const BASE_URL = (process.env.UTILITY_GRID_BASE_URL || "https://x402.forgemesh.io").replace(/\/$/, "");
16
16
  const BASE_RPC_URL = process.env.BASE_RPC_URL || "https://mainnet.base.org";
17
17
 
@@ -240,6 +240,12 @@ async function paidPost(ctx, path, body) {
240
240
  const TOOLS = [
241
241
  {
242
242
  name: "list_capabilities",
243
+ annotations: {
244
+ readOnlyHint: true,
245
+ destructiveHint: false,
246
+ idempotentHint: true,
247
+ openWorldHint: true,
248
+ },
243
249
  description:
244
250
  `FREE — no wallet needed. Browse the ForgeMesh Utility Grid catalog (415+ POST routes and growing, covering ${CATEGORY_EXAMPLES}). Call with no arguments for a category overview with route counts, or pass a category to list every route in it with price and description. Always reads the live /openapi.json — never a stale/hardcoded list.`,
245
251
  inputSchema: {
@@ -251,6 +257,12 @@ const TOOLS = [
251
257
  },
252
258
  {
253
259
  name: "search_capabilities",
260
+ annotations: {
261
+ readOnlyHint: true,
262
+ destructiveHint: false,
263
+ idempotentHint: true,
264
+ openWorldHint: true,
265
+ },
254
266
  description:
255
267
  "FREE — no wallet needed. Keyword search across every route's path, operation id, and description (e.g. 'chess', 'timezone', 'background removal'). Use this when you don't know the exact route name or category.",
256
268
  inputSchema: {
@@ -264,6 +276,12 @@ const TOOLS = [
264
276
  },
265
277
  {
266
278
  name: "get_endpoint_spec",
279
+ annotations: {
280
+ readOnlyHint: true,
281
+ destructiveHint: false,
282
+ idempotentHint: true,
283
+ openWorldHint: true,
284
+ },
267
285
  description:
268
286
  "FREE — no wallet needed. Full call spec for one route: price, input JSON schema, a worked request example, and a worked response example, straight from the live OpenAPI discovery doc. Pass the route path (with or without a leading slash, e.g. 'chess-moves' or '/chess-moves'). Use this before call_endpoint to know exactly what body to send.",
269
287
  inputSchema: {
@@ -276,6 +294,12 @@ const TOOLS = [
276
294
  },
277
295
  {
278
296
  name: "call_endpoint",
297
+ annotations: {
298
+ readOnlyHint: true,
299
+ destructiveHint: false,
300
+ idempotentHint: false,
301
+ openWorldHint: true,
302
+ },
279
303
  description:
280
304
  "PAID (price varies by route, $0.001-$0.05) — the generic way to call ANY route in the Utility Grid. Pass the route path and a JSON body matching its input schema (use get_endpoint_spec first if unsure). Handles the full x402 payment flow automatically: fetches the 402 challenge, signs a USDC payment on Base, retries, and returns the result. Requires WALLET_PRIVATE_KEY.",
281
305
  inputSchema: {
@@ -289,6 +313,12 @@ const TOOLS = [
289
313
  },
290
314
  {
291
315
  name: "daily_402",
316
+ annotations: {
317
+ readOnlyHint: true,
318
+ destructiveHint: false,
319
+ idempotentHint: false,
320
+ openWorldHint: true,
321
+ },
292
322
  description:
293
323
  "PAID ($0.001) — the Daily 402: one featured x402 endpoint per UTC day, rotated deterministically through every paid route in the 12-service ForgeMesh fleet (500+ routes). Returns what it does, its price, input schema, and a worked example. Optional date override to replay a past day's pick. Requires WALLET_PRIVATE_KEY.",
294
324
  inputSchema: {
@@ -300,6 +330,12 @@ const TOOLS = [
300
330
  },
301
331
  {
302
332
  name: "agent_service_directory",
333
+ annotations: {
334
+ readOnlyHint: true,
335
+ destructiveHint: false,
336
+ idempotentHint: false,
337
+ openWorldHint: true,
338
+ },
303
339
  description:
304
340
  "PAID ($0.05) — machine-readable registry of every production x402 service in the ForgeMesh fleet: name, category, live route count, and price range per service. Useful for an agent deciding which paid tool/service to reach for next. Optional category filter (onchain-intel, voice, travel, econ-intel, commerce, infra, media, utility-grid). Requires WALLET_PRIVATE_KEY.",
305
341
  inputSchema: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@forgemeshlabs/utility-grid-mcp",
3
- "version": "0.1.0",
4
- "description": "ForgeMesh Utility Grid, by ForgeMesh Labs — 415+ small agent utility jobs (OCR, vision, audio, embeddings, web extraction, dictionary/slang, chess, math, conversions, time, geo/space data, and x402 ecosystem intelligence) behind 6 meta-tools instead of one tool per route. Free discovery (browse/search the live catalog, fetch a route's full call spec), paid generic call via x402 USDC micropayments on Base. No API key, no account.",
3
+ "version": "0.1.2",
4
+ "description": "Discover and call 400+ practical APIs through six MCP tools. Search OCR, image, audio, web, math, conversion, and geodata utilities for free, then pay per call with x402 USDC on Base—no account or API key.",
5
5
  "main": "index.js",
6
6
  "bin": {
7
7
  "utility-grid-mcp": "index.js"
@@ -15,13 +15,15 @@
15
15
  "Dockerfile",
16
16
  ".dockerignore",
17
17
  "smithery.yaml",
18
+ "SECURITY.md",
19
+ "CHANGELOG.md",
18
20
  "LICENSE"
19
21
  ],
20
22
  "mcpName": "io.github.forgemeshlabs/utility-grid-mcp",
21
23
  "scripts": {
22
24
  "start": "node index.js",
23
25
  "build": "echo \"no build step required\"",
24
- "test": "node --test test/"
26
+ "test": "node --test test/*.test.js"
25
27
  },
26
28
  "keywords": [
27
29
  "mcp",
@@ -50,7 +52,7 @@
50
52
  "node": ">=20"
51
53
  },
52
54
  "dependencies": {
53
- "@modelcontextprotocol/sdk": "^1.10.1",
55
+ "@modelcontextprotocol/sdk": "^1.30.0",
54
56
  "@x402/core": "^2.17.0",
55
57
  "@x402/evm": "^2.17.0",
56
58
  "viem": "^2.0.0"
package/server.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.forgemeshlabs/utility-grid-mcp",
4
- "description": "415+ agent utility jobs (OCR, vision, audio, math, conversions, geo/space, x402 intelligence) behind 6 meta-tools with free discovery and generic paid calling via x402.",
4
+ "description": "Discover and call 400+ practical APIs through six MCP tools with free search and x402 payments.",
5
5
  "repository": {
6
6
  "url": "https://github.com/forgemeshlabs/utility-grid-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.0",
9
+ "version": "0.1.2",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@forgemeshlabs/utility-grid-mcp",
14
- "version": "0.1.0",
14
+ "version": "0.1.2",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },