@axiomworks/agentreader-mcp 1.6.0 → 1.7.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.
- package/dist/index.js +29 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
7
7
|
// src/tools.ts
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
var ORIGIN = process.env.AGENTREADER_ORIGIN || "https://api.axiomworks.co.uk";
|
|
10
|
-
var VERSION = "1.
|
|
10
|
+
var VERSION = "1.7.0";
|
|
11
11
|
var CH = z.enum(["base", "ethereum", "arbitrum", "optimism", "polygon"]).optional();
|
|
12
12
|
var qs = (a) => new URLSearchParams(
|
|
13
13
|
Object.entries(a).filter(([, v]) => v != null && v !== "").map(([k, v]) => [k, String(v)])
|
|
@@ -228,6 +228,34 @@ var TOOLS = [
|
|
|
228
228
|
http: (a) => a.number ? `${ORIGIN}/uk-charity?number=${encodeURIComponent(a.number)}${a.suffix != null ? `&suffix=${encodeURIComponent(a.suffix)}` : ""}` : `${ORIGIN}/uk-charity?name=${encodeURIComponent(a.name || "")}`,
|
|
229
229
|
previewable: true
|
|
230
230
|
},
|
|
231
|
+
{
|
|
232
|
+
name: "us_sec",
|
|
233
|
+
description: "US SEC EDGAR company snapshot by ticker or CIK: filings, SIC, addresses. $0.05 USDC.",
|
|
234
|
+
price: "$0.05",
|
|
235
|
+
schema: { ticker: z.string().optional(), cik: z.string().optional() },
|
|
236
|
+
http: (a) => a.ticker ? `${ORIGIN}/us-sec?ticker=${encodeURIComponent(a.ticker)}` : `${ORIGIN}/us-sec?cik=${encodeURIComponent(a.cik || "")}`,
|
|
237
|
+
previewable: true
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
name: "us_sec_full",
|
|
241
|
+
description: "US SEC full DD: lite + us-gaap highlights + red-flag heuristics. $0.25 USDC.",
|
|
242
|
+
price: "$0.25",
|
|
243
|
+
schema: { ticker: z.string().optional(), cik: z.string().optional() },
|
|
244
|
+
http: (a) => a.ticker ? `${ORIGIN}/us-sec-full?ticker=${encodeURIComponent(a.ticker)}` : `${ORIGIN}/us-sec-full?cik=${encodeURIComponent(a.cik || "")}`,
|
|
245
|
+
previewable: true
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
name: "eu_vat",
|
|
249
|
+
description: "EU VIES VAT validation: valid, name, address. $0.01 USDC.",
|
|
250
|
+
price: "$0.01",
|
|
251
|
+
schema: {
|
|
252
|
+
vat: z.string().optional(),
|
|
253
|
+
country: z.string().optional(),
|
|
254
|
+
number: z.string().optional()
|
|
255
|
+
},
|
|
256
|
+
http: (a) => a.vat ? `${ORIGIN}/eu-vat?vat=${encodeURIComponent(a.vat)}` : `${ORIGIN}/eu-vat?country=${encodeURIComponent(a.country || "")}&number=${encodeURIComponent(a.number || "")}`,
|
|
257
|
+
previewable: true
|
|
258
|
+
},
|
|
231
259
|
{
|
|
232
260
|
name: "uk_charity_full",
|
|
233
261
|
description: "Full UK charity DD: trustees, finances, assets, governance, regulatory + red flags. $0.25 USDC.",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/tools.ts","../src/payment.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * @axiomworks/agentreader-mcp\n * Stdio MCP server for Axiom Works AgentReader.\n * Proxies tool calls to https://api.axiomworks.co.uk (same surface as /mcp).\n * Optional AGENTREADER_PRIVATE_KEY / EVM_PRIVATE_KEY enables auto x402 payment (USDC on Base).\n * Without a key, free previews (&preview=1) still work; paid calls return payment requirements.\n */\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { TOOLS, VERSION, ORIGIN, type ToolDef } from \"./tools.js\";\nimport { createFetch } from \"./payment.js\";\n\nfunction b64json(header: string | null) {\n if (!header) return null;\n try {\n return JSON.parse(Buffer.from(header, \"base64\").toString(\"utf8\"));\n } catch {\n return { raw: header.slice(0, 200) };\n }\n}\n\nfunction withPreview(url: string, tool: ToolDef, paying: boolean, args: Record<string, any>): string {\n if (paying || tool.free || tool.method === \"POST\" || !tool.previewable) return url;\n // Explicit preview:false disables free truncated mode\n if (args?.preview === false || args?.preview === \"0\") return url;\n const u = new URL(url);\n if (!u.searchParams.has(\"preview\")) u.searchParams.set(\"preview\", \"1\");\n return u.toString();\n}\n\nasync function callHttp(\n tool: ToolDef,\n args: Record<string, any>,\n fetchFn: typeof fetch,\n paying: boolean,\n) {\n let url = tool.http(args || {});\n url = withPreview(url, tool, paying, args || {});\n const init: RequestInit = {\n method: tool.method || \"GET\",\n headers: {\n accept: \"application/json\",\n \"user-agent\": `axiomworks-agentreader-mcp/${VERSION}`,\n },\n };\n if (tool.method === \"POST\") {\n (init.headers as Record<string, string>)[\"content-type\"] = \"application/json\";\n init.body = JSON.stringify(tool.body ? tool.body(args) : args);\n }\n const res = await fetchFn(url, init);\n const pr = res.headers.get(\"payment-required\") || res.headers.get(\"PAYMENT-REQUIRED\");\n const text = await res.text();\n let body: any;\n try {\n body = JSON.parse(text);\n } catch {\n body = { raw: text.slice(0, 2000) };\n }\n\n if (res.status === 402 || pr) {\n const payment = b64json(pr);\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(\n {\n error: \"payment_required\",\n status: 402,\n message:\n \"This tool is paid via x402 (USDC on Base). Set AGENTREADER_PRIVATE_KEY (or EVM_PRIVATE_KEY) so this MCP server can auto-pay, or retry the HTTP URL with @x402/fetch / @axiomworks/agentreader.\",\n paid_http: url.replace(/([?&])preview=1(&|$)/, \"$1\").replace(/\\?$/, \"\"),\n mcp: `${ORIGIN}/mcp`,\n preview_hint:\n \"Without a key, GET tools are called with preview=1 (free truncated sample, 8/IP/day).\",\n payment_required: payment,\n body,\n },\n null,\n 2,\n ),\n },\n ],\n };\n }\n if (!res.ok) {\n return {\n isError: true,\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(\n { error: body?.error || `HTTP ${res.status}`, status: res.status, body },\n null,\n 2,\n ),\n },\n ],\n };\n }\n return {\n content: [{ type: \"text\" as const, text: typeof body === \"string\" ? body : JSON.stringify(body) }],\n };\n}\n\nasync function main() {\n const { fetch: fetchFn, paying } = createFetch();\n const server = new McpServer({\n name: \"agentreader\",\n title: \"Axiom Works AgentReader\",\n version: VERSION,\n });\n\n for (const t of TOOLS) {\n server.tool(t.name, t.description, t.schema, async (args) => {\n try {\n return await callHttp(t, (args as Record<string, any>) || {}, fetchFn, paying);\n } catch (e: any) {\n return {\n isError: true,\n content: [{ type: \"text\" as const, text: String(e?.message || e) }],\n };\n }\n });\n }\n\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n\nmain().catch((e) => {\n console.error(e);\n process.exit(1);\n});\n","import { z } from \"zod\";\n\nexport const ORIGIN = process.env.AGENTREADER_ORIGIN || \"https://api.axiomworks.co.uk\";\nexport const VERSION = \"1.6.0\";\n\nconst CH = z.enum([\"base\", \"ethereum\", \"arbitrum\", \"optimism\", \"polygon\"]).optional();\nconst qs = (a: Record<string, unknown>) =>\n new URLSearchParams(\n Object.entries(a)\n .filter(([, v]) => v != null && v !== \"\")\n .map(([k, v]) => [k, String(v)]),\n ).toString();\n\nexport type ToolDef = {\n name: string;\n description: string;\n price: string;\n schema: Record<string, z.ZodTypeAny>;\n http: (a: Record<string, any>) => string;\n method?: \"GET\" | \"POST\";\n body?: (a: Record<string, any>) => unknown;\n free?: boolean;\n /** When true, unpaid preview mode appends preview=1 */\n previewable?: boolean;\n};\n\nexport const TOOLS: ToolDef[] = [\n {\n name: \"read_url\",\n description:\n \"Use this when you need clean Markdown + metadata from a public URL (not raw HTML). $0.002 USDC on Base via x402.\",\n price: \"$0.002\",\n schema: { url: z.string().url() },\n http: (a) => `${ORIGIN}/read?url=${encodeURIComponent(a.url)}`,\n previewable: true,\n },\n {\n name: \"extract_links\",\n description: \"Use this when you only need de-duplicated absolute links. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { url: z.string().url() },\n http: (a) => `${ORIGIN}/links?url=${encodeURIComponent(a.url)}`,\n previewable: true,\n },\n {\n name: \"check_domain\",\n description: \"Use this when vetting domain health: DNS/TLS/MX/SPF/DMARC + score. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { domain: z.string() },\n http: (a) => `${ORIGIN}/check?domain=${encodeURIComponent(a.domain)}`,\n previewable: true,\n },\n {\n name: \"company_research\",\n description:\n \"Website company research (tech, contacts, DNS, RDAP, news) with sources — not UK Companies House. $0.25 USDC.\",\n price: \"$0.25\",\n schema: { domain: z.string() },\n http: (a) => `${ORIGIN}/company?domain=${encodeURIComponent(a.domain)}`,\n previewable: true,\n },\n {\n name: \"uk_company\",\n description:\n \"Full UK Companies House due diligence (number or name) + red flags. $0.50 USDC. Prefer uk_company_lite for a cheap snapshot.\",\n price: \"$0.50\",\n schema: { number: z.string().optional(), name: z.string().optional() },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-company?number=${encodeURIComponent(a.number)}`\n : `${ORIGIN}/uk-company?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n {\n name: \"uk_company_lite\",\n description: \"Cheap UK company snapshot: status, compliance, red flags. $0.05 USDC.\",\n price: \"$0.05\",\n schema: { number: z.string().optional(), name: z.string().optional() },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-company-lite?number=${encodeURIComponent(a.number)}`\n : `${ORIGIN}/uk-company-lite?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n {\n name: \"company_full\",\n description: \"Website company research + UK CH pack when detected ($0.65 vs $0.75 separate).\",\n price: \"$0.65\",\n schema: { domain: z.string() },\n http: (a) => `${ORIGIN}/company-full?domain=${encodeURIComponent(a.domain)}`,\n previewable: true,\n },\n {\n name: \"convert_document\",\n description: \"Convert public PDF/DOCX/HTML/text URL to markdown or text. $0.03 USDC.\",\n price: \"$0.03\",\n schema: { url: z.string().url(), format: z.enum([\"markdown\", \"text\"]).optional() },\n http: (a) =>\n `${ORIGIN}/convert?url=${encodeURIComponent(a.url)}&format=${encodeURIComponent(a.format || \"markdown\")}`,\n previewable: true,\n },\n {\n name: \"create_monitor\",\n description: \"30-day hourly web change monitor → webhook. $1.00 USDC. POST body.\",\n price: \"$1.00\",\n schema: {\n url: z.string().url(),\n webhook: z.string().url(),\n selector: z.string().optional(),\n keyword: z.string().optional(),\n },\n http: () => `${ORIGIN}/monitor`,\n method: \"POST\",\n body: (a) => a,\n },\n {\n name: \"pricing\",\n description: \"Free: list Axiom Works AgentReader tools, prices and payment details.\",\n price: \"free\",\n schema: {},\n http: () => `${ORIGIN}/.well-known/x402`,\n free: true,\n },\n {\n name: \"wallet_balances\",\n description: \"EVM wallet balances (native + majors), 5 chains. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { address: z.string(), chain: CH, tokens: z.string().optional() },\n http: (a) => `${ORIGIN}/wallet?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"tx_status\",\n description: \"Did a tx/payment land: status, confirmations, fee, decoded ERC20 transfers. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { hash: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/tx?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"token_check\",\n description: \"ERC20 token risk: owner, proxy, liquidity, flags, score. $0.01 USDC.\",\n price: \"$0.01\",\n schema: { address: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/token-check?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"fx_rates\",\n description: \"ECB FX rates, latest/historical, with conversion. $0.002 USDC.\",\n price: \"$0.002\",\n schema: {\n base: z.string().optional(),\n symbols: z.string().optional(),\n date: z.string().optional(),\n amount: z.string().optional(),\n },\n http: (a) => `${ORIGIN}/fx?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"ens_lookup\",\n description: \"ENS name -> address + records, or reverse. $0.002 USDC.\",\n price: \"$0.002\",\n schema: { name: z.string().optional(), address: z.string().optional() },\n http: (a) => `${ORIGIN}/ens?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"token_metadata\",\n description: \"ERC20 name/symbol/decimals/supply. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { address: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/token?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"token_allowance\",\n description: \"ERC20 allowance owner->spender, unlimited flag. $0.002 USDC.\",\n price: \"$0.002\",\n schema: { token: z.string(), owner: z.string(), spender: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/allowance?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"contract_info\",\n description: \"Contract/proxy/clone/7702/standards/Sourcify name. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { address: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/contract?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"gas_fees\",\n description: \"Current gas fees + USD cost estimates. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { chain: CH },\n http: (a) => `${ORIGIN}/gas?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"block_lookup\",\n description: \"Block by number or timestamp. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { number: z.string().optional(), timestamp: z.string().optional(), chain: CH },\n http: (a) => `${ORIGIN}/block?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"nft_lookup\",\n description: \"NFT owner + metadata. $0.002 USDC.\",\n price: \"$0.002\",\n schema: { contract: z.string(), token_id: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/nft?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"web_search\",\n description:\n \"Open research search: Wikipedia + OpenAlex + arXiv + Crossref merged, deduped, ranked with snippets. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { q: z.string(), sources: z.string().optional(), limit: z.string().optional() },\n http: (a) => `${ORIGIN}/search?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"uk_property_prices\",\n description: \"England & Wales Land Registry sold prices near a postcode + medians. $0.01 USDC.\",\n price: \"$0.01\",\n schema: { postcode: z.string(), radius: z.string().optional() },\n http: (a) => `${ORIGIN}/uk-property?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"uk_area_profile\",\n description: \"UK postcode profile: ONS geography, police crime, FSA hygiene. $0.005 USDC.\",\n price: \"$0.005\",\n schema: { postcode: z.string() },\n http: (a) => `${ORIGIN}/uk-area?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"uk_charity\",\n description:\n \"UK Charity Commission snapshot: status, income, trustees count, activities. $0.05 USDC.\",\n price: \"$0.05\",\n schema: {\n number: z.string().optional(),\n name: z.string().optional(),\n suffix: z.string().optional(),\n },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-charity?number=${encodeURIComponent(a.number)}${a.suffix != null ? `&suffix=${encodeURIComponent(a.suffix)}` : \"\"}`\n : `${ORIGIN}/uk-charity?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n {\n name: \"uk_charity_full\",\n description:\n \"Full UK charity DD: trustees, finances, assets, governance, regulatory + red flags. $0.25 USDC.\",\n price: \"$0.25\",\n schema: {\n number: z.string().optional(),\n name: z.string().optional(),\n suffix: z.string().optional(),\n },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-charity-full?number=${encodeURIComponent(a.number)}${a.suffix != null ? `&suffix=${encodeURIComponent(a.suffix)}` : \"\"}`\n : `${ORIGIN}/uk-charity-full?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n];\n","import { wrapFetchWithPayment, x402Client } from \"@x402/fetch\";\nimport { ExactEvmScheme } from \"@x402/evm/exact/client\";\nimport { privateKeyToAccount } from \"viem/accounts\";\n\nexport type PaidFetch = typeof fetch;\n\n/** Resolve an EVM private key from common env names. */\nexport function resolvePrivateKey(): `0x${string}` | undefined {\n const raw =\n process.env.AGENTREADER_PRIVATE_KEY ||\n process.env.EVM_PRIVATE_KEY ||\n process.env.PRIVATE_KEY ||\n process.env.X402_PRIVATE_KEY;\n if (!raw) return undefined;\n const key = raw.startsWith(\"0x\") ? raw : `0x${raw}`;\n if (!/^0x[0-9a-fA-F]{64}$/.test(key)) {\n throw new Error(\n \"Invalid AGENTREADER_PRIVATE_KEY / EVM_PRIVATE_KEY (expected 32-byte hex with optional 0x)\",\n );\n }\n return key as `0x${string}`;\n}\n\n/** Build a fetch that auto-settles x402 exact USDC on Base when a key is present. */\nexport function createFetch(): { fetch: PaidFetch; paying: boolean } {\n const key = resolvePrivateKey();\n if (!key) return { fetch: globalThis.fetch.bind(globalThis), paying: false };\n const account = privateKeyToAccount(key);\n const client = new x402Client().register(\"eip155:8453\", new ExactEvmScheme(account));\n return { fetch: wrapFetchWithPayment(globalThis.fetch.bind(globalThis), client), paying: true };\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/tools.ts","../src/payment.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * @axiomworks/agentreader-mcp\n * Stdio MCP server for Axiom Works AgentReader.\n * Proxies tool calls to https://api.axiomworks.co.uk (same surface as /mcp).\n * Optional AGENTREADER_PRIVATE_KEY / EVM_PRIVATE_KEY enables auto x402 payment (USDC on Base).\n * Without a key, free previews (&preview=1) still work; paid calls return payment requirements.\n */\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { TOOLS, VERSION, ORIGIN, type ToolDef } from \"./tools.js\";\nimport { createFetch } from \"./payment.js\";\n\nfunction b64json(header: string | null) {\n if (!header) return null;\n try {\n return JSON.parse(Buffer.from(header, \"base64\").toString(\"utf8\"));\n } catch {\n return { raw: header.slice(0, 200) };\n }\n}\n\nfunction withPreview(url: string, tool: ToolDef, paying: boolean, args: Record<string, any>): string {\n if (paying || tool.free || tool.method === \"POST\" || !tool.previewable) return url;\n // Explicit preview:false disables free truncated mode\n if (args?.preview === false || args?.preview === \"0\") return url;\n const u = new URL(url);\n if (!u.searchParams.has(\"preview\")) u.searchParams.set(\"preview\", \"1\");\n return u.toString();\n}\n\nasync function callHttp(\n tool: ToolDef,\n args: Record<string, any>,\n fetchFn: typeof fetch,\n paying: boolean,\n) {\n let url = tool.http(args || {});\n url = withPreview(url, tool, paying, args || {});\n const init: RequestInit = {\n method: tool.method || \"GET\",\n headers: {\n accept: \"application/json\",\n \"user-agent\": `axiomworks-agentreader-mcp/${VERSION}`,\n },\n };\n if (tool.method === \"POST\") {\n (init.headers as Record<string, string>)[\"content-type\"] = \"application/json\";\n init.body = JSON.stringify(tool.body ? tool.body(args) : args);\n }\n const res = await fetchFn(url, init);\n const pr = res.headers.get(\"payment-required\") || res.headers.get(\"PAYMENT-REQUIRED\");\n const text = await res.text();\n let body: any;\n try {\n body = JSON.parse(text);\n } catch {\n body = { raw: text.slice(0, 2000) };\n }\n\n if (res.status === 402 || pr) {\n const payment = b64json(pr);\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(\n {\n error: \"payment_required\",\n status: 402,\n message:\n \"This tool is paid via x402 (USDC on Base). Set AGENTREADER_PRIVATE_KEY (or EVM_PRIVATE_KEY) so this MCP server can auto-pay, or retry the HTTP URL with @x402/fetch / @axiomworks/agentreader.\",\n paid_http: url.replace(/([?&])preview=1(&|$)/, \"$1\").replace(/\\?$/, \"\"),\n mcp: `${ORIGIN}/mcp`,\n preview_hint:\n \"Without a key, GET tools are called with preview=1 (free truncated sample, 8/IP/day).\",\n payment_required: payment,\n body,\n },\n null,\n 2,\n ),\n },\n ],\n };\n }\n if (!res.ok) {\n return {\n isError: true,\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(\n { error: body?.error || `HTTP ${res.status}`, status: res.status, body },\n null,\n 2,\n ),\n },\n ],\n };\n }\n return {\n content: [{ type: \"text\" as const, text: typeof body === \"string\" ? body : JSON.stringify(body) }],\n };\n}\n\nasync function main() {\n const { fetch: fetchFn, paying } = createFetch();\n const server = new McpServer({\n name: \"agentreader\",\n title: \"Axiom Works AgentReader\",\n version: VERSION,\n });\n\n for (const t of TOOLS) {\n server.tool(t.name, t.description, t.schema, async (args) => {\n try {\n return await callHttp(t, (args as Record<string, any>) || {}, fetchFn, paying);\n } catch (e: any) {\n return {\n isError: true,\n content: [{ type: \"text\" as const, text: String(e?.message || e) }],\n };\n }\n });\n }\n\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n\nmain().catch((e) => {\n console.error(e);\n process.exit(1);\n});\n","import { z } from \"zod\";\n\nexport const ORIGIN = process.env.AGENTREADER_ORIGIN || \"https://api.axiomworks.co.uk\";\nexport const VERSION = \"1.7.0\";\n\nconst CH = z.enum([\"base\", \"ethereum\", \"arbitrum\", \"optimism\", \"polygon\"]).optional();\nconst qs = (a: Record<string, unknown>) =>\n new URLSearchParams(\n Object.entries(a)\n .filter(([, v]) => v != null && v !== \"\")\n .map(([k, v]) => [k, String(v)]),\n ).toString();\n\nexport type ToolDef = {\n name: string;\n description: string;\n price: string;\n schema: Record<string, z.ZodTypeAny>;\n http: (a: Record<string, any>) => string;\n method?: \"GET\" | \"POST\";\n body?: (a: Record<string, any>) => unknown;\n free?: boolean;\n /** When true, unpaid preview mode appends preview=1 */\n previewable?: boolean;\n};\n\nexport const TOOLS: ToolDef[] = [\n {\n name: \"read_url\",\n description:\n \"Use this when you need clean Markdown + metadata from a public URL (not raw HTML). $0.002 USDC on Base via x402.\",\n price: \"$0.002\",\n schema: { url: z.string().url() },\n http: (a) => `${ORIGIN}/read?url=${encodeURIComponent(a.url)}`,\n previewable: true,\n },\n {\n name: \"extract_links\",\n description: \"Use this when you only need de-duplicated absolute links. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { url: z.string().url() },\n http: (a) => `${ORIGIN}/links?url=${encodeURIComponent(a.url)}`,\n previewable: true,\n },\n {\n name: \"check_domain\",\n description: \"Use this when vetting domain health: DNS/TLS/MX/SPF/DMARC + score. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { domain: z.string() },\n http: (a) => `${ORIGIN}/check?domain=${encodeURIComponent(a.domain)}`,\n previewable: true,\n },\n {\n name: \"company_research\",\n description:\n \"Website company research (tech, contacts, DNS, RDAP, news) with sources — not UK Companies House. $0.25 USDC.\",\n price: \"$0.25\",\n schema: { domain: z.string() },\n http: (a) => `${ORIGIN}/company?domain=${encodeURIComponent(a.domain)}`,\n previewable: true,\n },\n {\n name: \"uk_company\",\n description:\n \"Full UK Companies House due diligence (number or name) + red flags. $0.50 USDC. Prefer uk_company_lite for a cheap snapshot.\",\n price: \"$0.50\",\n schema: { number: z.string().optional(), name: z.string().optional() },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-company?number=${encodeURIComponent(a.number)}`\n : `${ORIGIN}/uk-company?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n {\n name: \"uk_company_lite\",\n description: \"Cheap UK company snapshot: status, compliance, red flags. $0.05 USDC.\",\n price: \"$0.05\",\n schema: { number: z.string().optional(), name: z.string().optional() },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-company-lite?number=${encodeURIComponent(a.number)}`\n : `${ORIGIN}/uk-company-lite?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n {\n name: \"company_full\",\n description: \"Website company research + UK CH pack when detected ($0.65 vs $0.75 separate).\",\n price: \"$0.65\",\n schema: { domain: z.string() },\n http: (a) => `${ORIGIN}/company-full?domain=${encodeURIComponent(a.domain)}`,\n previewable: true,\n },\n {\n name: \"convert_document\",\n description: \"Convert public PDF/DOCX/HTML/text URL to markdown or text. $0.03 USDC.\",\n price: \"$0.03\",\n schema: { url: z.string().url(), format: z.enum([\"markdown\", \"text\"]).optional() },\n http: (a) =>\n `${ORIGIN}/convert?url=${encodeURIComponent(a.url)}&format=${encodeURIComponent(a.format || \"markdown\")}`,\n previewable: true,\n },\n {\n name: \"create_monitor\",\n description: \"30-day hourly web change monitor → webhook. $1.00 USDC. POST body.\",\n price: \"$1.00\",\n schema: {\n url: z.string().url(),\n webhook: z.string().url(),\n selector: z.string().optional(),\n keyword: z.string().optional(),\n },\n http: () => `${ORIGIN}/monitor`,\n method: \"POST\",\n body: (a) => a,\n },\n {\n name: \"pricing\",\n description: \"Free: list Axiom Works AgentReader tools, prices and payment details.\",\n price: \"free\",\n schema: {},\n http: () => `${ORIGIN}/.well-known/x402`,\n free: true,\n },\n {\n name: \"wallet_balances\",\n description: \"EVM wallet balances (native + majors), 5 chains. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { address: z.string(), chain: CH, tokens: z.string().optional() },\n http: (a) => `${ORIGIN}/wallet?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"tx_status\",\n description: \"Did a tx/payment land: status, confirmations, fee, decoded ERC20 transfers. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { hash: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/tx?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"token_check\",\n description: \"ERC20 token risk: owner, proxy, liquidity, flags, score. $0.01 USDC.\",\n price: \"$0.01\",\n schema: { address: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/token-check?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"fx_rates\",\n description: \"ECB FX rates, latest/historical, with conversion. $0.002 USDC.\",\n price: \"$0.002\",\n schema: {\n base: z.string().optional(),\n symbols: z.string().optional(),\n date: z.string().optional(),\n amount: z.string().optional(),\n },\n http: (a) => `${ORIGIN}/fx?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"ens_lookup\",\n description: \"ENS name -> address + records, or reverse. $0.002 USDC.\",\n price: \"$0.002\",\n schema: { name: z.string().optional(), address: z.string().optional() },\n http: (a) => `${ORIGIN}/ens?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"token_metadata\",\n description: \"ERC20 name/symbol/decimals/supply. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { address: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/token?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"token_allowance\",\n description: \"ERC20 allowance owner->spender, unlimited flag. $0.002 USDC.\",\n price: \"$0.002\",\n schema: { token: z.string(), owner: z.string(), spender: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/allowance?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"contract_info\",\n description: \"Contract/proxy/clone/7702/standards/Sourcify name. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { address: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/contract?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"gas_fees\",\n description: \"Current gas fees + USD cost estimates. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { chain: CH },\n http: (a) => `${ORIGIN}/gas?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"block_lookup\",\n description: \"Block by number or timestamp. $0.001 USDC.\",\n price: \"$0.001\",\n schema: { number: z.string().optional(), timestamp: z.string().optional(), chain: CH },\n http: (a) => `${ORIGIN}/block?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"nft_lookup\",\n description: \"NFT owner + metadata. $0.002 USDC.\",\n price: \"$0.002\",\n schema: { contract: z.string(), token_id: z.string(), chain: CH },\n http: (a) => `${ORIGIN}/nft?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"web_search\",\n description:\n \"Open research search: Wikipedia + OpenAlex + arXiv + Crossref merged, deduped, ranked with snippets. $0.003 USDC.\",\n price: \"$0.003\",\n schema: { q: z.string(), sources: z.string().optional(), limit: z.string().optional() },\n http: (a) => `${ORIGIN}/search?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"uk_property_prices\",\n description: \"England & Wales Land Registry sold prices near a postcode + medians. $0.01 USDC.\",\n price: \"$0.01\",\n schema: { postcode: z.string(), radius: z.string().optional() },\n http: (a) => `${ORIGIN}/uk-property?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"uk_area_profile\",\n description: \"UK postcode profile: ONS geography, police crime, FSA hygiene. $0.005 USDC.\",\n price: \"$0.005\",\n schema: { postcode: z.string() },\n http: (a) => `${ORIGIN}/uk-area?${qs(a)}`,\n previewable: true,\n },\n {\n name: \"uk_charity\",\n description:\n \"UK Charity Commission snapshot: status, income, trustees count, activities. $0.05 USDC.\",\n price: \"$0.05\",\n schema: {\n number: z.string().optional(),\n name: z.string().optional(),\n suffix: z.string().optional(),\n },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-charity?number=${encodeURIComponent(a.number)}${a.suffix != null ? `&suffix=${encodeURIComponent(a.suffix)}` : \"\"}`\n : `${ORIGIN}/uk-charity?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n\n {\n name: \"us_sec\",\n description:\n \"US SEC EDGAR company snapshot by ticker or CIK: filings, SIC, addresses. $0.05 USDC.\",\n price: \"$0.05\",\n schema: { ticker: z.string().optional(), cik: z.string().optional() },\n http: (a) =>\n a.ticker\n ? `${ORIGIN}/us-sec?ticker=${encodeURIComponent(a.ticker)}`\n : `${ORIGIN}/us-sec?cik=${encodeURIComponent(a.cik || \"\")}`,\n previewable: true,\n },\n {\n name: \"us_sec_full\",\n description:\n \"US SEC full DD: lite + us-gaap highlights + red-flag heuristics. $0.25 USDC.\",\n price: \"$0.25\",\n schema: { ticker: z.string().optional(), cik: z.string().optional() },\n http: (a) =>\n a.ticker\n ? `${ORIGIN}/us-sec-full?ticker=${encodeURIComponent(a.ticker)}`\n : `${ORIGIN}/us-sec-full?cik=${encodeURIComponent(a.cik || \"\")}`,\n previewable: true,\n },\n {\n name: \"eu_vat\",\n description: \"EU VIES VAT validation: valid, name, address. $0.01 USDC.\",\n price: \"$0.01\",\n schema: {\n vat: z.string().optional(),\n country: z.string().optional(),\n number: z.string().optional(),\n },\n http: (a) =>\n a.vat\n ? `${ORIGIN}/eu-vat?vat=${encodeURIComponent(a.vat)}`\n : `${ORIGIN}/eu-vat?country=${encodeURIComponent(a.country || \"\")}&number=${encodeURIComponent(a.number || \"\")}`,\n previewable: true,\n },\n {\n name: \"uk_charity_full\",\n description:\n \"Full UK charity DD: trustees, finances, assets, governance, regulatory + red flags. $0.25 USDC.\",\n price: \"$0.25\",\n schema: {\n number: z.string().optional(),\n name: z.string().optional(),\n suffix: z.string().optional(),\n },\n http: (a) =>\n a.number\n ? `${ORIGIN}/uk-charity-full?number=${encodeURIComponent(a.number)}${a.suffix != null ? `&suffix=${encodeURIComponent(a.suffix)}` : \"\"}`\n : `${ORIGIN}/uk-charity-full?name=${encodeURIComponent(a.name || \"\")}`,\n previewable: true,\n },\n];\n","import { wrapFetchWithPayment, x402Client } from \"@x402/fetch\";\nimport { ExactEvmScheme } from \"@x402/evm/exact/client\";\nimport { privateKeyToAccount } from \"viem/accounts\";\n\nexport type PaidFetch = typeof fetch;\n\n/** Resolve an EVM private key from common env names. */\nexport function resolvePrivateKey(): `0x${string}` | undefined {\n const raw =\n process.env.AGENTREADER_PRIVATE_KEY ||\n process.env.EVM_PRIVATE_KEY ||\n process.env.PRIVATE_KEY ||\n process.env.X402_PRIVATE_KEY;\n if (!raw) return undefined;\n const key = raw.startsWith(\"0x\") ? raw : `0x${raw}`;\n if (!/^0x[0-9a-fA-F]{64}$/.test(key)) {\n throw new Error(\n \"Invalid AGENTREADER_PRIVATE_KEY / EVM_PRIVATE_KEY (expected 32-byte hex with optional 0x)\",\n );\n }\n return key as `0x${string}`;\n}\n\n/** Build a fetch that auto-settles x402 exact USDC on Base when a key is present. */\nexport function createFetch(): { fetch: PaidFetch; paying: boolean } {\n const key = resolvePrivateKey();\n if (!key) return { fetch: globalThis.fetch.bind(globalThis), paying: false };\n const account = privateKeyToAccount(key);\n const client = new x402Client().register(\"eip155:8453\", new ExactEvmScheme(account));\n return { fetch: wrapFetchWithPayment(globalThis.fetch.bind(globalThis), client), paying: true };\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiomworks/agentreader-mcp",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Axiom Works AgentReader stdio MCP server
|
|
3
|
+
"version": "1.7.0",
|
|
4
|
+
"description": "Axiom Works AgentReader stdio MCP server \u2014 29 x402-paid tools (web read, UK CH/charity/property, US SEC EDGAR, EU VIES VAT, EVM wallet/tx/token/ENS, FX, search). Auto-pays USDC on Base when AGENTREADER_PRIVATE_KEY is set. Run: npx -y @axiomworks/agentreader-mcp",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"mcpName": "io.github.grokbot1233/agentreader",
|
|
7
7
|
"bin": {
|
|
8
|
-
"agentreader-mcp": "
|
|
8
|
+
"agentreader-mcp": "dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"main": "./dist/index.js",
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"node": ">=18"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "tsup",
|
|
27
|
+
"build": "tsup && node -e \"require('fs').chmodSync('dist/index.js',0o755)\"",
|
|
28
28
|
"prepublishOnly": "npm run build",
|
|
29
29
|
"start": "node dist/index.js"
|
|
30
30
|
},
|