@apiosk/mcp 1.3.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/README.md ADDED
@@ -0,0 +1,590 @@
1
+ # Apiosk MCP Server
2
+
3
+ Official MCP server for discovering, paying for, and publishing Apiosk APIs.
4
+
5
+ ## Quick Start
6
+
7
+ ### Package names
8
+
9
+ The scoped npm package is the canonical client SDK package:
10
+
11
+ ```bash
12
+ npm install @apiosk/mcp
13
+ ```
14
+
15
+ It exposes the same CLI binaries as the legacy package:
16
+
17
+ ```bash
18
+ npx -y @apiosk/mcp
19
+ apiosk-mcp
20
+ apiosk-mcp-server
21
+ apiosk
22
+ ```
23
+
24
+ The previous public package name, `apiosk-mcp-server`, remains supported as a
25
+ compatibility install path for existing MCP client configs.
26
+
27
+ For MCP registry submission forms, use:
28
+
29
+ - npm Package: `@apiosk/mcp`
30
+ - PyPI Package: `apiosk-mcp`
31
+ - Short Description: `Discover, pay for, execute, and publish Apiosk APIs through MCP.`
32
+
33
+ The PyPI package is a launcher for the canonical npm package, so `uvx
34
+ apiosk-mcp` starts the same MCP server as `npx -y @apiosk/mcp`.
35
+
36
+ ### Local stdio package
37
+
38
+ ```bash
39
+ npx -y @apiosk/mcp
40
+ ```
41
+
42
+ Python/uv users can install through PyPI:
43
+
44
+ ```bash
45
+ uvx apiosk-mcp
46
+ ```
47
+
48
+ The PyPI launcher requires Node.js 20+ and `npx` on `PATH`. By default it runs
49
+ `npx -y @apiosk/mcp@1.3.0`; set `APIOSK_MCP_NPM_PACKAGE=@apiosk/mcp@next` to
50
+ override the npm package spec.
51
+
52
+ ### Publishing packages
53
+
54
+ From this `mcp/` directory:
55
+
56
+ ```bash
57
+ npm run pack:check
58
+ npm publish --access public
59
+ ```
60
+
61
+ ```bash
62
+ python3 -m pip install --upgrade build twine
63
+ python3 -m build
64
+ python3 -m twine upload dist/apiosk_mcp-1.3.0*
65
+ ```
66
+
67
+ After both uploads are live, the MCP registry package fields are:
68
+
69
+ ```text
70
+ npm Package: @apiosk/mcp
71
+ PyPI Package: apiosk-mcp
72
+ Short Description: Discover, pay for, execute, and publish Apiosk APIs through MCP.
73
+ ```
74
+
75
+ ### With automatic x402 payments from an env wallet
76
+
77
+ ```bash
78
+ APIOSK_PRIVATE_KEY=0x... npx -y @apiosk/mcp
79
+ ```
80
+
81
+ ### With dashboard-managed access
82
+
83
+ ```bash
84
+ APIOSK_CONNECT_TOKEN=... npx -y @apiosk/mcp
85
+ ```
86
+
87
+ After the MCP server is installed in Claude, Codex, or another client, the fastest first-run path in local stdio mode is:
88
+
89
+ ```json
90
+ { "wallet_label": "My Apiosk wallet" }
91
+ ```
92
+
93
+ Call that through `apiosk_get_started`. It will create a local wallet when needed, or you can pass `connect_string` to save managed access locally and immediately run a discovery probe plus a small test call.
94
+
95
+ ## Local Wallet Mode
96
+
97
+ The local stdio package exposes wallet tools that let Claude or Codex:
98
+
99
+ - create or import a wallet
100
+ - show the wallet address
101
+ - select the active wallet used for paid calls
102
+ - reveal or save the private key when the user explicitly asks
103
+ - publish and manage APIs without opening the dashboard
104
+
105
+ The active wallet is mirrored to:
106
+
107
+ - `~/.apiosk/wallet.json`
108
+ - `~/.apiosk/wallet.txt`
109
+
110
+ so older Apiosk scripts can reuse it.
111
+
112
+ ## Agent Configuration
113
+
114
+ ### Claude Desktop
115
+
116
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
117
+
118
+ ```json
119
+ {
120
+ "mcpServers": {
121
+ "apiosk": {
122
+ "command": "npx",
123
+ "args": ["-y", "@apiosk/mcp"]
124
+ }
125
+ }
126
+ }
127
+ ```
128
+
129
+ ### Cursor
130
+
131
+ ```json
132
+ {
133
+ "mcpServers": {
134
+ "apiosk": {
135
+ "command": "npx",
136
+ "args": ["-y", "@apiosk/mcp"]
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
142
+ ### Windsurf
143
+
144
+ ```json
145
+ {
146
+ "mcpServers": {
147
+ "apiosk": {
148
+ "command": "npx",
149
+ "args": ["-y", "@apiosk/mcp"]
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ ### Claude Code
156
+
157
+ Remote HTTP:
158
+
159
+ ```bash
160
+ claude mcp add --transport http apiosk https://mcp.apiosk.com/mcp
161
+ ```
162
+
163
+ Local stdio:
164
+
165
+ ```json
166
+ {
167
+ "mcpServers": {
168
+ "apiosk": {
169
+ "command": "npx",
170
+ "args": ["-y", "@apiosk/mcp"]
171
+ }
172
+ }
173
+ }
174
+ ```
175
+
176
+ ### Cline / Continue / Goose
177
+
178
+ ```json
179
+ {
180
+ "mcpServers": {
181
+ "apiosk": {
182
+ "command": "npx",
183
+ "args": ["-y", "@apiosk/mcp"]
184
+ }
185
+ }
186
+ }
187
+ ```
188
+
189
+ ### Using a local checkout
190
+
191
+ ```json
192
+ {
193
+ "mcpServers": {
194
+ "apiosk": {
195
+ "command": "node",
196
+ "args": ["/full/path/to/apiosk-mcp/index.mjs"]
197
+ }
198
+ }
199
+ }
200
+ ```
201
+
202
+ ### ChatGPT and other remote MCP apps
203
+
204
+ Use the hosted MCP endpoint:
205
+
206
+ ```text
207
+ https://mcp.apiosk.com/mcp
208
+ ```
209
+
210
+ Protected tools on the hosted server use OAuth. The remote MCP surface is fully
211
+ capable — discovery, payment guidance, generic **and** dynamic per-API
212
+ execution, prepaid credits, and managed agent-wallet CRUD. Public tools
213
+ (discovery + guidance) work before authorization; paid execution and managed
214
+ tools require OAuth. Publishing stays local/portal-only because it needs a
215
+ client-side signing key the hosted server never holds.
216
+
217
+ ## Provider MCP Monetization
218
+
219
+ If you own an MCP server and want to sell its tools through Apiosk, keep payment
220
+ logic out of your MCP. Apiosk is the paid edge.
221
+
222
+ Provider requirements:
223
+
224
+ - Host your MCP over HTTPS, for example `https://tools.example.com/mcp`.
225
+ - Support normal MCP `initialize`, `tools/list`, and `tools/call`.
226
+ - Keep tool names stable; imported tools become paid operation ids.
227
+ - Provide useful descriptions and JSON schemas; these become buyer-facing
228
+ discovery metadata.
229
+ - Protect the provider MCP with bearer auth or another upstream secret, then
230
+ configure Apiosk to inject that secret so buyers cannot bypass the gateway.
231
+
232
+ Provider portal flow:
233
+
234
+ 1. Open the provider portal and choose `Import MCP`.
235
+ 2. Enter the MCP URL and optional bearer token.
236
+ 3. Apiosk scans `tools/list` and creates one paid action per selected tool.
237
+ 4. Review tool paths, schemas, descriptions, and per-call prices.
238
+ 5. Publish the draft after linking a payout wallet.
239
+
240
+ Buyer-facing surfaces after publish:
241
+
242
+ - Hosted Apiosk MCP: `https://mcp.apiosk.com/mcp`
243
+ - Catalog search: `https://gateway.apiosk.com/v1/apis?search=<slug>`
244
+ - Metadata: `GET https://gateway.apiosk.com/<slug>/metadata`
245
+ - Execution: `POST https://gateway.apiosk.com/<slug>/execute`
246
+
247
+ The traffic path is:
248
+
249
+ ```text
250
+ buyer agent -> Apiosk MCP/gateway -> payment rail -> provider MCP tools/call
251
+ ```
252
+
253
+ The provider MCP should reject direct unauthenticated traffic, but it should not
254
+ return `402 Payment Required` or inspect `X-Payment`. Payment challenges,
255
+ credits, x402 proof verification, and revenue splits are handled by Apiosk.
256
+
257
+ ## Available Tools
258
+
259
+ Static tools:
260
+
261
+ - `apiosk_help`
262
+ - `apiosk_payment_guide` — buyer + provider guide for paying through and publishing on the gateway
263
+ - `apiosk_explore`
264
+ - `apiosk_search`
265
+ - `apiosk_get_api`
266
+ - `apiosk_execute`
267
+
268
+ Hosted remote MCP tools (in addition to dynamic per-API tools):
269
+
270
+ - Discovery / guidance: `apiosk_help`, `apiosk_payment_guide`, `apiosk_search`, `apiosk_explore`, `apiosk_get_api`, `apiosk_metadata`, `apiosk_execute`, `apiosk_health`
271
+ - Prepaid credits: `apiosk_buy_credits`, `apiosk_get_credits_status`
272
+ - Managed wallets: `apiosk_list_wallets`, `apiosk_create_wallet`, `apiosk_update_wallet`, `apiosk_delete_wallet`, `apiosk_get_wallet_activity`, `apiosk_create_wallet_connect_string`, `apiosk_list_wallet_api_keys`, `apiosk_create_wallet_api_key`, `apiosk_update_wallet_api_key`, `apiosk_delete_wallet_api_key`
273
+
274
+ Local wallet tools in stdio mode:
275
+
276
+ - `apiosk_get_started`
277
+ - `apiosk_wallet_list`
278
+ - `apiosk_wallet_create`
279
+ - `apiosk_configure`
280
+ - `apiosk_wallet_select`
281
+ - `apiosk_wallet_update`
282
+ - `apiosk_wallet_delete`
283
+ - `apiosk_wallet_reveal_secret`
284
+ - `apiosk_wallet_save_secret`
285
+
286
+ Publish tools in stdio mode:
287
+
288
+ - `apiosk_publish_api`
289
+ - `apiosk_list_my_apis`
290
+ - `apiosk_update_api`
291
+ - `apiosk_delete_api`
292
+
293
+ Optional dashboard-managed wallet tools:
294
+
295
+ - `apiosk_list_wallets`
296
+ - `apiosk_create_wallet`
297
+ - `apiosk_update_wallet`
298
+ - `apiosk_delete_wallet`
299
+ - `apiosk_get_wallet_activity`
300
+ - `apiosk_create_wallet_connect_string`
301
+ - `apiosk_list_wallet_api_keys`
302
+ - `apiosk_create_wallet_api_key`
303
+ - `apiosk_update_wallet_api_key`
304
+ - `apiosk_delete_wallet_api_key`
305
+
306
+ Dynamic tools:
307
+
308
+ - local stdio mode still generates one dynamic tool per active Apiosk API slug from listing metadata
309
+
310
+ ## Examples
311
+
312
+ ### Explore
313
+
314
+ ```json
315
+ {}
316
+ ```
317
+
318
+ ```json
319
+ { "listing_type": "dataset", "search": "weather", "limit": 5 }
320
+ ```
321
+
322
+ ### Search
323
+
324
+ ```json
325
+ { "search": "diff", "limit": 5 }
326
+ ```
327
+
328
+ Search, explore, and `apiosk_get_api` responses now embed a `payment` block that
329
+ tells the agent exactly how to settle a paid call given the current auth — so an
330
+ agent that finds, say, a weather API immediately knows whether it can pay and
331
+ what to do next.
332
+
333
+ ### Payment guide (buyer + provider)
334
+
335
+ ```json
336
+ {}
337
+ ```
338
+
339
+ ```json
340
+ { "role": "provider" }
341
+ ```
342
+
343
+ ```json
344
+ { "role": "buyer", "slug": "weather-now" }
345
+ ```
346
+
347
+ Returns a buyer guide (USDC/x402 or credits — tailored to the configured auth)
348
+ and a provider guide (how to publish an API and get paid). Pass `slug` to scope
349
+ buyer guidance to one listing, or `role` to pick a side.
350
+
351
+ ### Create a local wallet
352
+
353
+ ```json
354
+ { "label": "Claude wallet" }
355
+ ```
356
+
357
+ The create response includes:
358
+
359
+ - the wallet address
360
+ - Base funding instructions
361
+ - a QR image URL
362
+ - a terminal QR block when QR rendering is enabled
363
+ - a structured Apiosk control menu with wallet, funding, pay, publish, security, and local-data sections
364
+
365
+ ### Get started in one step
366
+
367
+ Create a local wallet automatically, discover the catalog, and run a test call:
368
+
369
+ ```json
370
+ {
371
+ "wallet_label": "Starter wallet",
372
+ "test_slug": "agent-json-diff",
373
+ "test_input": {
374
+ "before": { "ok": true },
375
+ "after": { "ok": false }
376
+ }
377
+ }
378
+ ```
379
+
380
+ Or save a dashboard-managed connect string locally and verify it:
381
+
382
+ ```json
383
+ {
384
+ "connect_string": "export APIO_GATEWAY_URL=https://gateway.apiosk.com\nexport APIO_CHAIN_ID=8453\nexport APIO_AGENT_WALLET_ADDRESS=0x...\nexport APIO_CONNECT_TOKEN=aw_...\nexport APIO_CONNECT_AUTHORIZATION=Bearer aw_...\nexport APIO_CONNECT_HEADER_NAME=X-Apiosk-Connect-Token",
385
+ "test_slug": "agent-json-diff",
386
+ "test_input": {
387
+ "before": { "ok": true },
388
+ "after": { "ok": false }
389
+ },
390
+ "create_wallet": false
391
+ }
392
+ ```
393
+
394
+ The connect string identifies the buyer's managed wallet and connect token. The
395
+ `APIO_WALLET_*` limits bound the USDC (x402) rail. The same connect token also
396
+ settles over prepaid credits when USDC is unavailable — the gateway picks the
397
+ rail per call. Call `apiosk_help` with `topic="rails"` for the full settlement
398
+ model.
399
+
400
+ ### Open the configure menu
401
+
402
+ ```json
403
+ { "section": "funding" }
404
+ ```
405
+
406
+ ```json
407
+ { "wallet_id": "...", "section": "funding", "funding_provider": "onramper" }
408
+ ```
409
+
410
+ ### Save a secret key backup
411
+
412
+ ```json
413
+ { "wallet_id": "..." }
414
+ ```
415
+
416
+ ### Publish an API
417
+
418
+ ```json
419
+ {
420
+ "name": "My Weather API",
421
+ "slug": "my-weather-api",
422
+ "endpoint_url": "https://example.com",
423
+ "price_usd": 0.01,
424
+ "description": "Real-time weather data",
425
+ "listing_group": "datasets"
426
+ }
427
+ ```
428
+
429
+ ### Generic execute
430
+
431
+ ```json
432
+ {
433
+ "slug": "agent-json-diff",
434
+ "input": {
435
+ "before": { "ok": true },
436
+ "after": { "ok": false }
437
+ }
438
+ }
439
+ ```
440
+
441
+ ### Dynamic tool call (local stdio only)
442
+
443
+ If the server lists a dynamic tool named `agent-json-diff`, call it directly:
444
+
445
+ ```json
446
+ {
447
+ "before": { "ok": true },
448
+ "after": { "ok": false }
449
+ }
450
+ ```
451
+
452
+ ## MacBook Air Test Script
453
+
454
+ Run the safe default suite from a repo checkout:
455
+
456
+ ```bash
457
+ cd /Users/olivierbrinkman/Development/Apiosk/subs/mcp
458
+ npm run test:macbook-air
459
+ ```
460
+
461
+ Default coverage:
462
+
463
+ - runs `npm test`
464
+ - runs the isolated fresh-environment smoke test
465
+ - starts a local HTTP MCP server in a temp `APIOSK_HOME`
466
+ - verifies `health`, `tools/list`, `apiosk_search`, `apiosk_explore`, and `apiosk_get_api`
467
+ - creates a wallet, checks funding QR/configure output, and verifies secret export plus `wallet.json` and `wallet.txt`
468
+ - verifies the hosted Fly deployment, OAuth metadata, protected-resource metadata, public discovery, and the unauthenticated OAuth challenge for protected tools
469
+
470
+ Useful options:
471
+
472
+ - `TARGET=local` to skip hosted checks
473
+ - `TARGET=hosted` to skip local checks
474
+ - `APIOSK_RUN_REMOTE_WALLET_TEST=1 APIOSK_MCP_BEARER_TOKEN=...` to verify an authenticated protected hosted call after the unauthenticated challenge check
475
+ - `APIOSK_RUN_FUNDED_TESTS=1 APIOSK_TEST_PRIVATE_KEY=0x...` to import a funded wallet and run a real paid execute test
476
+ - `APIOSK_RUN_FUNDED_TESTS=1 APIOSK_MCP_BEARER_TOKEN=... TARGET=hosted` to run a real paid execute test through the hosted OAuth path
477
+ - `APIOSK_RUN_FUNDED_TESTS=1 APIOSK_RUN_PUBLISH_TEST=1 APIOSK_TEST_PRIVATE_KEY=0x... TARGET=local` to also test publish, list, update, and delete with a temporary listing
478
+
479
+ Example funded run:
480
+
481
+ ```bash
482
+ cd /Users/olivierbrinkman/Development/Apiosk/subs/mcp
483
+ APIOSK_RUN_FUNDED_TESTS=1 \
484
+ APIOSK_TEST_PRIVATE_KEY=0x... \
485
+ npm run test:macbook-air
486
+ ```
487
+
488
+ ## Live URL Test Script
489
+
490
+ Run a hosted-only test directly against the public MCP endpoint:
491
+
492
+ ```bash
493
+ cd /Users/olivierbrinkman/Development/Apiosk/subs/mcp
494
+ npm run test:live
495
+ ```
496
+
497
+ Default live coverage:
498
+
499
+ - checks `https://mcp.apiosk.com/health`
500
+ - verifies the hosted tool surface
501
+ - verifies `/.well-known/oauth-authorization-server`
502
+ - verifies `/.well-known/oauth-protected-resource/mcp`
503
+ - runs live `apiosk_explore`, `apiosk_metadata`, and `apiosk_health`
504
+ - verifies that an unauthenticated protected MCP tool call returns the expected OAuth `401` challenge
505
+
506
+ Optional live funded checks:
507
+
508
+ - `APIOSK_RUN_REMOTE_WALLET_TEST=1 APIOSK_MCP_BEARER_TOKEN=... npm run test:live`
509
+ - `APIOSK_RUN_FUNDED_TESTS=1 APIOSK_MCP_BEARER_TOKEN=... npm run test:live`
510
+
511
+ The live hosted suite no longer imports a private key into the hosted MCP. Protected live checks now rely on a real hosted OAuth bearer token, which matches the ChatGPT-style remote MCP flow.
512
+
513
+ ## Environment Variables
514
+
515
+ - `APIOSK_PRIVATE_KEY`: enables automatic x402 settlement and signed publish requests
516
+ - `APIOSK_CONNECT_TOKEN`: attach a dashboard-managed connect token
517
+ - `APIOSK_CONNECT_AUTHORIZATION`: attach a custom Authorization header
518
+ - `APIOSK_CONNECT_HEADER_NAME`: override the connect-token header name
519
+ - `APIOSK_WALLET_ADDRESS`: send a wallet address for wallet-aware flows
520
+ - `APIOSK_X_PAYMENT`: attach a pre-built x402 proof manually
521
+ - `APIOSK_GATEWAY`: override the gateway base URL
522
+ - `APIOSK_CONTROL_PLANE_URL`: override the MCP-owned control-plane API base URL used for account, credits, and managed-wallet routes. Defaults to `https://mcp.apiosk.com`
523
+ - `APIOSK_DASHBOARD_URL`: override the human-facing dashboard/app URL stored in local config and used in confirmation flows. Defaults to `https://dashboard.apiosk.com`
524
+ - `APIOSK_DASHBOARD_JWT` or `APIOSK_USER_JWT`: unlock dashboard wallet routes
525
+ - `APIOSK_ENABLE_LOCAL_WALLETS=true`: enable local wallet tools in HTTP server mode
526
+ - `APIOSK_MCP_OAUTH_SECRET` or `APIOSK_MCP_AUTH_SECRET`: signing secret for hosted OAuth codes, access tokens, and refresh tokens
527
+ - `APIOSK_MCP_BEARER_TOKEN`: optional hosted OAuth access token used by the live scripts for authenticated protected-tool checks
528
+ - `APIOSK_HOME`: override the default `~/.apiosk` directory
529
+ - `APIOSK_MCP_WALLET_STORE`: override the local wallet store path
530
+
531
+ ## Human-Funded Credits Flow
532
+
533
+ In the local stdio package, MCP can now help a human top up Apiosk credits and then let the agent spend those credits later:
534
+
535
+ 1. `apiosk_create_account` if the user needs a new Apiosk account
536
+ 2. `apiosk_sign_in` to store a local dashboard session token
537
+ 3. `apiosk_buy_credits` to create an Adyen checkout link
538
+ 4. `apiosk_get_credits_status` after payment to reconcile the top-up and confirm the balance
539
+
540
+ If signup does not return a session immediately, tell the user to confirm their email first and then call `apiosk_sign_in`.
541
+
542
+ These calls now target the MCP-owned control-plane surface by default:
543
+
544
+ - `https://mcp.apiosk.com/api/auth/mcp-sign-up`
545
+ - `https://mcp.apiosk.com/api/auth/mcp-sign-in`
546
+ - `https://mcp.apiosk.com/api/credits/topup`
547
+ - `https://mcp.apiosk.com/api/credits/reconcile`
548
+
549
+ ## Remote HTTP Server
550
+
551
+ The public HTTP deployment is safe-by-default: local wallet and publish tools are disabled unless `APIOSK_ENABLE_LOCAL_WALLETS=true` is set on that server.
552
+
553
+ Hosted OAuth metadata and authorization routes now live on the same host:
554
+
555
+ - `https://mcp.apiosk.com/.well-known/oauth-authorization-server`
556
+ - `https://mcp.apiosk.com/.well-known/oauth-protected-resource/mcp`
557
+ - `https://mcp.apiosk.com/authorize`
558
+ - `https://mcp.apiosk.com/token`
559
+ - `https://mcp.apiosk.com/register`
560
+
561
+ Test it:
562
+
563
+ ```bash
564
+ curl https://mcp.apiosk.com/health
565
+ ```
566
+
567
+ ```bash
568
+ curl https://mcp.apiosk.com/mcp \
569
+ -H "Content-Type: application/json" \
570
+ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
571
+ ```
572
+
573
+ ## Development
574
+
575
+ ```bash
576
+ npm install
577
+ npm run dev # HTTP server on :3000
578
+ node index.mjs # stdio mode with local wallet tools enabled
579
+ ```
580
+
581
+ Fresh-environment smoke test:
582
+
583
+ ```bash
584
+ cd /Users/olivierbrinkman/Development/Apiosk/subs/mcp
585
+ npm run smoke:new-env
586
+ ```
587
+
588
+ ## License
589
+
590
+ MIT
@@ -0,0 +1,92 @@
1
+ # Apiosk MCP Marketplace Submission
2
+
3
+ ## Name
4
+
5
+ Apiosk MCP
6
+
7
+ ## Short description
8
+
9
+ Official MCP server for discovering, paying for, and executing Apiosk APIs with pay-per-request billing.
10
+
11
+ ## One-line value proposition
12
+
13
+ Give agents direct access to paid APIs without API keys or subscriptions.
14
+
15
+ ## Long description
16
+
17
+ Apiosk MCP turns the Apiosk gateway into an agent-native tool surface for Claude Code, Codex, Cursor, and other MCP clients.
18
+
19
+ It gives agents:
20
+
21
+ - catalog-backed API discovery
22
+ - dynamic tool generation from live listing metadata
23
+ - pay-per-request execution through Apiosk
24
+ - support for credits and x402 payment flows
25
+ - local wallet and publish flows in the local stdio package
26
+
27
+ This makes Apiosk useful both for agent users who want to call tools on demand, and for API builders who want to monetize endpoints in an agent-native way.
28
+
29
+ ## Hosted endpoint
30
+
31
+ `https://mcp.apiosk.com/mcp`
32
+
33
+ ## Install
34
+
35
+ ### Claude Code
36
+
37
+ ```bash
38
+ claude mcp add --transport http apiosk https://mcp.apiosk.com/mcp
39
+ ```
40
+
41
+ ### Codex
42
+
43
+ ```bash
44
+ codex mcp add apiosk --url https://mcp.apiosk.com/mcp
45
+ ```
46
+
47
+ ### Local package
48
+
49
+ ```bash
50
+ npx -y apiosk-mcp-server
51
+ ```
52
+
53
+ ## Core capabilities
54
+
55
+ - Discover APIs in the Apiosk catalog
56
+ - Search APIs by keyword and listing metadata
57
+ - Inspect API pricing, routes, and MCP metadata
58
+ - Execute paid APIs through a single MCP surface
59
+ - Use human-funded credits
60
+ - Use autonomous x402 wallet-based payments
61
+ - Publish APIs from the local MCP package
62
+
63
+ ## Why it is different
64
+
65
+ - No API-key-first setup
66
+ - No subscription-first pricing model
67
+ - Payment is tied to the request itself
68
+ - New APIs can become available as tools without hand-maintained wrappers
69
+
70
+ ## Ideal categories
71
+
72
+ - Developer tools
73
+ - AI agents
74
+ - MCP
75
+ - API marketplace
76
+ - Payments
77
+
78
+ ## Tags
79
+
80
+ `mcp`, `agents`, `api`, `payments`, `developer-tools`, `x402`, `credits`, `marketplace`
81
+
82
+ ## Support links
83
+
84
+ - Website: `https://apiosk.com`
85
+ - Docs: `https://docs.apiosk.com`
86
+ - MCP endpoint: `https://mcp.apiosk.com/mcp`
87
+ - Gateway: `https://gateway.apiosk.com`
88
+ - npm: `https://www.npmjs.com/package/apiosk-mcp-server`
89
+
90
+ ## Notes for reviewers
91
+
92
+ The hosted MCP endpoint is intended for remote HTTP use. The npm package exposes additional local-first tools such as wallet creation, local config persistence, and API publishing.