{
	"$comment": "Generated by scripts/build-mcp-catalog.mjs alongside /mcp-catalog.json (which adds every input schema). Live totals: GET /api/mcp-census.",
	"catalog": "https://three.ws/mcp-catalog.json",
	"live": "https://three.ws/api/mcp-census",
	"method": "Computed, never typed: each hosted endpoint is counted by importing the exact catalog, resource table and prompt set it serves, and each stdio package by loading its server in-process and calling tools/list, resources/list and prompts/list over an in-memory MCP transport. tools: every tool an endpoint can serve, including financial-tier tools the policy hides until a session enables them (defaultOn is what a fresh session sees). resources: fixed-URI resources/list entries. templates: resources/templates/list entries. prompts: prompts/list entries rendered against that endpoint's own catalog. unique: distinct tool names across all servers. /api/mcp-chatgpt and /api/mcp-grok serve subsets of /api/mcp-studio, so per-server figures overlap and unique is the headline total. Recomputed on every build (public/mcp-catalog.json, public/tools.json) and on every request to /api/mcp-census; npm run check:mcp-counts fails the gate when a doc quotes a number that no longer matches.",
	"totals": {
		"all": {
			"servers": 56,
			"tools": 794,
			"uniqueTools": 672,
			"resources": 24,
			"uniqueResources": 11,
			"templates": 21,
			"uniqueTemplates": 11,
			"prompts": 42,
			"uniquePrompts": 24
		},
		"hosted": {
			"servers": 11,
			"tools": 476,
			"uniqueTools": 428,
			"resources": 22,
			"uniqueResources": 9,
			"templates": 21,
			"uniqueTemplates": 11,
			"prompts": 41,
			"uniquePrompts": 23
		},
		"stdio": {
			"servers": 45,
			"tools": 318,
			"uniqueTools": 313,
			"resources": 2,
			"uniqueResources": 2,
			"templates": 0,
			"uniqueTemplates": 0,
			"prompts": 1,
			"uniquePrompts": 1
		}
	},
	"unified": {
		"$comment": "The unified MCP server registry (api/_mcpall/registry.js), generated by scripts/build-mcp-catalog.mjs.",
		"endpoint": "https://three.ws/mcp",
		"route": "/api/mcp/all",
		"tool_count": 403,
		"default_tool_count": 334,
		"tiers": {
			"read": 227,
			"write": 107,
			"financial": 69
		},
		"groups": [
			{
				"id": "agents",
				"label": "Agents",
				"summary": "Create, inspect, and remember things for your agents: identities, memory, provenance, on-chain registration.",
				"tools": 24,
				"tiers": {
					"read": 9,
					"write": 13,
					"financial": 2
				},
				"scopes": [
					"agents:read",
					"agents:write",
					"avatars:read",
					"memory:read",
					"memory:write"
				]
			},
			{
				"id": "chat",
				"label": "Chat",
				"summary": "Run a model: chat completions, embeddings, tutoring sessions, and the model catalog.",
				"tools": 5,
				"tiers": {
					"read": 5,
					"write": 0,
					"financial": 0
				},
				"scopes": []
			},
			{
				"id": "runs",
				"label": "Runs",
				"summary": "Autonomous work: autopilot proposals, their dry runs, and the log of what an agent did on its own.",
				"tools": 14,
				"tiers": {
					"read": 4,
					"write": 9,
					"financial": 1
				},
				"scopes": [
					"agents:read",
					"agents:write"
				]
			},
			{
				"id": "skills",
				"label": "Skills",
				"summary": "Author, list, and install the skills an agent can use.",
				"tools": 14,
				"tiers": {
					"read": 5,
					"write": 8,
					"financial": 1
				},
				"scopes": [
					"agents:read",
					"agents:write"
				]
			},
			{
				"id": "trading",
				"label": "Trading",
				"summary": "Quote and execute swaps from an agent wallet, copy trading, and signal subscriptions.",
				"tools": 34,
				"tiers": {
					"read": 20,
					"write": 5,
					"financial": 9
				},
				"scopes": [
					"agents:read",
					"agents:write"
				]
			},
			{
				"id": "perps",
				"label": "Perps",
				"summary": "Perpetual futures positions.",
				"tools": 16,
				"tiers": {
					"read": 10,
					"write": 1,
					"financial": 5
				},
				"scopes": []
			},
			{
				"id": "lending",
				"label": "Lending",
				"summary": "Supply, borrow, and repay on lending markets.",
				"tools": 5,
				"tiers": {
					"read": 3,
					"write": 0,
					"financial": 2
				},
				"scopes": []
			},
			{
				"id": "predictions",
				"label": "Predictions",
				"summary": "Prediction market positions.",
				"tools": 20,
				"tiers": {
					"read": 12,
					"write": 5,
					"financial": 3
				},
				"scopes": []
			},
			{
				"id": "launch",
				"label": "Launch",
				"summary": "Launch a coin: metadata upload, vanity mints, launch, and creator-fee collection.",
				"tools": 14,
				"tiers": {
					"read": 7,
					"write": 5,
					"financial": 2
				},
				"scopes": [
					"wallet:launch",
					"wallet:read",
					"wallet:write"
				]
			},
			{
				"id": "domains",
				"label": "Domains",
				"summary": "Search, price and register web domains, and connect a domain to an agent page. Registration spends credits.",
				"tools": 8,
				"tiers": {
					"read": 5,
					"write": 2,
					"financial": 1
				},
				"scopes": [
					"agents:read",
					"agents:write",
					"wallet:read",
					"wallet:write"
				]
			},
			{
				"id": "marketplace",
				"label": "Marketplace",
				"summary": "Browse and hire agents and skills, the job board, and bounty markets.",
				"tools": 25,
				"tiers": {
					"read": 12,
					"write": 4,
					"financial": 9
				},
				"scopes": []
			},
			{
				"id": "cards",
				"label": "Cards",
				"summary": "Agent payment cards.",
				"tools": 14,
				"tiers": {
					"read": 7,
					"write": 3,
					"financial": 4
				},
				"scopes": [
					"wallet:read",
					"wallet:write"
				]
			},
			{
				"id": "mail",
				"label": "Mail",
				"summary": "Outward messages: paid knocks, announcements to a person, and agent mail.",
				"tools": 12,
				"tiers": {
					"read": 7,
					"write": 2,
					"financial": 3
				},
				"scopes": [
					"agents:read",
					"agents:write",
					"wallet:write"
				]
			},
			{
				"id": "x402",
				"label": "x402",
				"summary": "Discover, price, and pay x402 services; payment sessions; publish your own paid endpoint.",
				"tools": 43,
				"tiers": {
					"read": 24,
					"write": 1,
					"financial": 18
				},
				"scopes": []
			},
			{
				"id": "wallet",
				"label": "Wallet",
				"summary": "Agent wallets: balances, portfolio, provisioning, and transfers out.",
				"tools": 16,
				"tiers": {
					"read": 10,
					"write": 4,
					"financial": 2
				},
				"scopes": [
					"wallet:read",
					"wallet:write"
				]
			},
			{
				"id": "commerce",
				"label": "Commerce",
				"summary": "Invoices paid on Solana, offers an agent sells and buys, transfers to people, and proposals to change an agent's spending limits.",
				"tools": 13,
				"tiers": {
					"read": 7,
					"write": 4,
					"financial": 2
				},
				"scopes": []
			},
			{
				"id": "intelligence",
				"label": "Intelligence",
				"summary": "Market data and research: token intel, holders, trades, smart money, KOLs, Oracle conviction, alerts.",
				"tools": 35,
				"tiers": {
					"read": 33,
					"write": 1,
					"financial": 1
				},
				"scopes": [
					"agents:read"
				]
			},
			{
				"id": "integrations",
				"label": "Integrations",
				"summary": "Embeds, widgets, and connected systems such as a Home Assistant house.",
				"tools": 14,
				"tiers": {
					"read": 6,
					"write": 5,
					"financial": 3
				},
				"scopes": [
					"avatars:read",
					"avatars:write",
					"home:act",
					"home:read"
				]
			},
			{
				"id": "account",
				"label": "Account",
				"summary": "Notifications, delivery preferences, and push devices.",
				"tools": 2,
				"tiers": {
					"read": 2,
					"write": 0,
					"financial": 0
				},
				"scopes": []
			},
			{
				"id": "assets",
				"label": "Assets",
				"summary": "3D generation, avatars, animation, rigging, rendering, and the asset catalog.",
				"tools": 58,
				"tiers": {
					"read": 28,
					"write": 29,
					"financial": 1
				},
				"scopes": [
					"avatars:delete",
					"avatars:read",
					"avatars:write"
				]
			},
			{
				"id": "gateway",
				"label": "Tool gateway",
				"summary": "Web search, page fetch, a headless browser, image and video generation, speech and transcription, and document parsing, billed per call in credits.",
				"tools": 6,
				"tiers": {
					"read": 0,
					"write": 6,
					"financial": 0
				},
				"scopes": []
			},
			{
				"id": "utility",
				"label": "Utility",
				"summary": "Getting-started guides, name resolution, vision, speech, and other stateless helpers.",
				"tools": 11,
				"tiers": {
					"read": 11,
					"write": 0,
					"financial": 0
				},
				"scopes": [
					"feedback:read"
				]
			}
		],
		"sources": [
			{
				"id": "mcp",
				"title": "three.ws",
				"endpoint": "/api/mcp",
				"tools": 156
			},
			{
				"id": "mcp-3d",
				"title": "3D Studio",
				"endpoint": "/api/mcp-3d",
				"tools": 28
			},
			{
				"id": "mcp-studio",
				"title": "3D Studio (free)",
				"endpoint": "/api/mcp-studio",
				"tools": 12
			},
			{
				"id": "mcp-agent",
				"title": "Agent wallet",
				"endpoint": "/api/mcp-agent",
				"tools": 174
			},
			{
				"id": "mcp-bazaar",
				"title": "x402 Bazaar",
				"endpoint": "/api/mcp-bazaar",
				"tools": 4
			},
			{
				"id": "pump-fun-mcp",
				"title": "pump.fun",
				"endpoint": "/api/pump-fun-mcp",
				"tools": 21
			},
			{
				"id": "ibm-mcp",
				"title": "IBM Granite",
				"endpoint": "/api/ibm-mcp",
				"tools": 6
			}
		],
		"tools": [
			{
				"name": "account_get_account_status",
				"legacy": "get_account_status",
				"group": "account",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Account status"
			},
			{
				"name": "account_get_dashboard_urls",
				"legacy": "get_dashboard_urls",
				"group": "account",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Dashboard links"
			},
			{
				"name": "agents_attach_avatar_to_agent",
				"legacy": "attach_avatar_to_agent",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Give an agent a body"
			},
			{
				"name": "agents_browse_web",
				"legacy": "browse_web",
				"group": "agents",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Send an agent to browse the web"
			},
			{
				"name": "agents_call_agent",
				"legacy": "call_agent",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "avatars:read",
				"public": false,
				"title": "Call agent"
			},
			{
				"name": "agents_create_agent",
				"legacy": "create_agent",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Create an agent"
			},
			{
				"name": "agents_create_agent_persona",
				"legacy": "create_agent_persona",
				"group": "agents",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Save a rigged model as a living, persistent agent body"
			},
			{
				"name": "agents_delete_agent",
				"legacy": "delete_agent",
				"group": "agents",
				"tier": "financial",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Delete an agent you own"
			},
			{
				"name": "agents_forget",
				"legacy": "forget",
				"group": "agents",
				"tier": "financial",
				"source": "mcp",
				"scope": "memory:write",
				"public": false,
				"title": "Forget"
			},
			{
				"name": "agents_get_agent",
				"legacy": "get_agent",
				"group": "agents",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Get one agent you own"
			},
			{
				"name": "agents_get_agent_persona",
				"legacy": "get_agent_persona",
				"group": "agents",
				"tier": "read",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Reload a persona by id (continuity across sessions)"
			},
			{
				"name": "agents_get_learning_status",
				"legacy": "get_learning_status",
				"group": "agents",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read what the agent learning loop remembers"
			},
			{
				"name": "agents_identity_check",
				"legacy": "identity_check",
				"group": "agents",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Screen an agent identity for impersonation"
			},
			{
				"name": "agents_list_my_agents",
				"legacy": "list_my_agents",
				"group": "agents",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "List my agents"
			},
			{
				"name": "agents_persona_say",
				"legacy": "persona_say",
				"group": "agents",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Speak a reply through a persona: lip-sync + emotion + gesture"
			},
			{
				"name": "agents_recall",
				"legacy": "recall",
				"group": "agents",
				"tier": "read",
				"source": "mcp",
				"scope": "memory:read",
				"public": false,
				"title": "Recall"
			},
			{
				"name": "agents_register_agent",
				"legacy": "register_agent",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Register an agent on-chain"
			},
			{
				"name": "agents_remember",
				"legacy": "remember",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "memory:write",
				"public": false,
				"title": "Remember"
			},
			{
				"name": "agents_solana_agent_attestations",
				"legacy": "solana_agent_attestations",
				"group": "agents",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "List Solana agent attestations"
			},
			{
				"name": "agents_solana_agent_passport",
				"legacy": "solana_agent_passport",
				"group": "agents",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Get Solana agent passport"
			},
			{
				"name": "agents_solana_agent_reputation",
				"legacy": "solana_agent_reputation",
				"group": "agents",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Get Solana agent reputation"
			},
			{
				"name": "agents_start_agent",
				"legacy": "start_agent",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Start an agent"
			},
			{
				"name": "agents_stop_agent",
				"legacy": "stop_agent",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Stop an agent"
			},
			{
				"name": "agents_submit_build_entry",
				"legacy": "submit_build_entry",
				"group": "agents",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Enter an agent in a Build round"
			},
			{
				"name": "agents_update_agent",
				"legacy": "update_agent",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Edit an agent you own"
			},
			{
				"name": "agents_upload_agent_avatar",
				"legacy": "upload_agent_avatar",
				"group": "agents",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Give an agent a 3D body or a portrait"
			},
			{
				"name": "assets_anchor_provenance",
				"legacy": "anchor_provenance",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Anchor a signed content credential for a 3D model"
			},
			{
				"name": "assets_animation_signature",
				"legacy": "animation_signature",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Measure what an animation clip actually does"
			},
			{
				"name": "assets_apply_animation",
				"legacy": "apply_animation",
				"group": "assets",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Apply an animation preset to a rigged model"
			},
			{
				"name": "assets_auto_rig_model",
				"legacy": "auto_rig_model",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Auto-rig a static 3D model (skeleton + skin weights)"
			},
			{
				"name": "assets_cad_generate",
				"legacy": "cad_generate",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Generate a parametric CAD part (STEP, STL, GLB)"
			},
			{
				"name": "assets_cad_rebuild",
				"legacy": "cad_rebuild",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Rebuild a CAD part with new dimensions"
			},
			{
				"name": "assets_capture_scene",
				"legacy": "capture_scene",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Reconstruct a 3D scene from a video"
			},
			{
				"name": "assets_check_job",
				"legacy": "check_job",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Check a pending 3D generation"
			},
			{
				"name": "assets_delete_avatar",
				"legacy": "delete_avatar",
				"group": "assets",
				"tier": "financial",
				"source": "mcp",
				"scope": "avatars:delete",
				"public": false,
				"title": "Delete avatar"
			},
			{
				"name": "assets_diff_models",
				"legacy": "diff_models",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Diff two glTF/GLB models"
			},
			{
				"name": "assets_direct_prompt",
				"legacy": "direct_prompt",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Optimize a rough idea into a 3D-generation prompt (IBM Granite)"
			},
			{
				"name": "assets_export_ar",
				"legacy": "export_ar",
				"group": "assets",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Export a model for AR (\"View in your space\")"
			},
			{
				"name": "assets_find_similar_animations",
				"legacy": "find_similar_animations",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Find clips with similar measured motion"
			},
			{
				"name": "assets_forge_avatar",
				"legacy": "forge_avatar",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Generate a rigged, animation-ready avatar"
			},
			{
				"name": "assets_forge_free",
				"legacy": "forge_free",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Generate a 3D model from text"
			},
			{
				"name": "assets_garment_status",
				"legacy": "garment_status",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Check a garment generation job"
			},
			{
				"name": "assets_generate_garment",
				"legacy": "generate_garment",
				"group": "assets",
				"tier": "write",
				"source": "mcp",
				"scope": "avatars:write",
				"public": false,
				"title": "Generate a wearable garment from a text prompt"
			},
			{
				"name": "assets_generate_material",
				"legacy": "generate_material",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Generate a glTF PBR material from a description (IBM Granite)"
			},
			{
				"name": "assets_generation_status",
				"legacy": "generation_status",
				"group": "assets",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Check a 3D generation job"
			},
			{
				"name": "assets_get_3d_asset_onchain",
				"legacy": "get_3d_asset_onchain",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Resolve a 3D NFT to its live asset + provenance"
			},
			{
				"name": "assets_get_avatar",
				"legacy": "get_avatar",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": "avatars:read",
				"public": false,
				"title": "Get avatar"
			},
			{
				"name": "assets_get_catalog_item",
				"legacy": "get_catalog_item",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Read one catalog item"
			},
			{
				"name": "assets_get_item_source",
				"legacy": "get_item_source",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Get paste-ready source for a catalog item"
			},
			{
				"name": "assets_get_job",
				"legacy": "get_job",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Get a 3D generation job"
			},
			{
				"name": "assets_grade_sim_readiness",
				"legacy": "grade_sim_readiness",
				"group": "assets",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Grade a 3D model for physics simulation"
			},
			{
				"name": "assets_image_to_3d",
				"legacy": "image_to_3d",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Reconstruct a 3D model from one or more images"
			},
			{
				"name": "assets_inspect_model",
				"legacy": "inspect_model",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Inspect glTF/GLB model"
			},
			{
				"name": "assets_list_animations",
				"legacy": "list_animations",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "List animation presets"
			},
			{
				"name": "assets_list_garment_catalog",
				"legacy": "list_garment_catalog",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "List the wardrobe garment catalog"
			},
			{
				"name": "assets_list_my_avatars",
				"legacy": "list_my_avatars",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": "avatars:read",
				"public": false,
				"title": "List my avatars"
			},
			{
				"name": "assets_list_sign_vocabulary",
				"legacy": "list_sign_vocabulary",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "List the ASL vocabulary"
			},
			{
				"name": "assets_look_at_model",
				"legacy": "look_at_model",
				"group": "assets",
				"tier": "read",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Look at a 3D model"
			},
			{
				"name": "assets_mesh_forge",
				"legacy": "mesh_forge",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Generate a 3D mesh (art-directed)"
			},
			{
				"name": "assets_mint_3d_asset",
				"legacy": "mint_3d_asset",
				"group": "assets",
				"tier": "write",
				"source": "mcp",
				"scope": "avatars:write",
				"public": false,
				"title": "Mint a 3D asset as a Solana NFT"
			},
			{
				"name": "assets_optimize_model",
				"legacy": "optimize_model",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Suggest optimizations for a glTF/GLB model"
			},
			{
				"name": "assets_pose_model",
				"legacy": "pose_model",
				"group": "assets",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Resolve a text prompt to a pose-studio seed + joint rotations"
			},
			{
				"name": "assets_preview_3d",
				"legacy": "preview_3d",
				"group": "assets",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Preview any GLB as an interactive 3D artifact"
			},
			{
				"name": "assets_print_analyze",
				"legacy": "print_analyze",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Check whether a 3D model can be printed"
			},
			{
				"name": "assets_print_quote",
				"legacy": "print_quote",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Price a real 3D print and get a signed quote"
			},
			{
				"name": "assets_refine_model",
				"legacy": "refine_model",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Refine a 3D model by describing a change"
			},
			{
				"name": "assets_remesh_model",
				"legacy": "remesh_model",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Remesh, simplify, repair, or convert a 3D model"
			},
			{
				"name": "assets_remove_background",
				"legacy": "remove_background",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Remove the background from an image"
			},
			{
				"name": "assets_render_avatar",
				"legacy": "render_avatar",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": "avatars:read",
				"public": false,
				"title": "Render avatar"
			},
			{
				"name": "assets_render_avatar_image",
				"legacy": "render_avatar_image",
				"group": "assets",
				"tier": "write",
				"source": "mcp",
				"scope": "avatars:read",
				"public": false,
				"title": "Render an avatar to an image"
			},
			{
				"name": "assets_retexture_model",
				"legacy": "retexture_model",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Paint a new texture onto a 3D model from a text prompt"
			},
			{
				"name": "assets_retexture_region",
				"legacy": "retexture_region",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Repaint one masked region of a model's texture (magic brush)"
			},
			{
				"name": "assets_rig_mesh",
				"legacy": "rig_mesh",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Rig a 3D model for animation"
			},
			{
				"name": "assets_save_avatar",
				"legacy": "save_avatar",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": "avatars:write",
				"public": false,
				"title": "Save a generated GLB as a durable, named avatar"
			},
			{
				"name": "assets_search_catalog",
				"legacy": "search_catalog",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Search the three.ws asset catalog"
			},
			{
				"name": "assets_search_public_avatars",
				"legacy": "search_public_avatars",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Search public avatars"
			},
			{
				"name": "assets_segment_model",
				"legacy": "segment_model",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Split a 3D model into named, separable parts"
			},
			{
				"name": "assets_sign_text",
				"legacy": "sign_text",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Sign text in ASL"
			},
			{
				"name": "assets_stylize_model",
				"legacy": "stylize_model",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Apply a one-click geometric stylization filter to a 3D model"
			},
			{
				"name": "assets_text_to_3d",
				"legacy": "text_to_3d",
				"group": "assets",
				"tier": "write",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Generate a 3D model from a text prompt"
			},
			{
				"name": "assets_text_to_animation",
				"legacy": "text_to_animation",
				"group": "assets",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Generate an animation from a text prompt and retarget it onto a model"
			},
			{
				"name": "assets_text_to_avatar",
				"legacy": "text_to_avatar",
				"group": "assets",
				"tier": "write",
				"source": "mcp-studio",
				"scope": null,
				"public": true,
				"title": "Generate a 3D avatar"
			},
			{
				"name": "assets_validate_model",
				"legacy": "validate_model",
				"group": "assets",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Validate glTF/GLB model"
			},
			{
				"name": "assets_verify_provenance",
				"legacy": "verify_provenance",
				"group": "assets",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Verify a 3D model authenticity (content credential)"
			},
			{
				"name": "cards_agent_card_balance",
				"legacy": "agent_card_balance",
				"group": "cards",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Card balance"
			},
			{
				"name": "cards_agent_card_cancel",
				"legacy": "agent_card_cancel",
				"group": "cards",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Cancel a card"
			},
			{
				"name": "cards_agent_card_connect",
				"legacy": "agent_card_connect",
				"group": "cards",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Card provider verification status"
			},
			{
				"name": "cards_agent_card_connect_link",
				"legacy": "agent_card_connect_link",
				"group": "cards",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Card provider verification link"
			},
			{
				"name": "cards_agent_card_create",
				"legacy": "agent_card_create",
				"group": "cards",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Buy a card from the agent wallet"
			},
			{
				"name": "cards_agent_card_data",
				"legacy": "agent_card_data",
				"group": "cards",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Card data and reveal preview"
			},
			{
				"name": "cards_agent_card_get",
				"legacy": "agent_card_get",
				"group": "cards",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Get one agent card"
			},
			{
				"name": "cards_agent_card_list",
				"legacy": "agent_card_list",
				"group": "cards",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "List agent cards"
			},
			{
				"name": "cards_agent_card_quote",
				"legacy": "agent_card_quote",
				"group": "cards",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Quote a card purchase"
			},
			{
				"name": "cards_agent_card_reveal",
				"legacy": "agent_card_reveal",
				"group": "cards",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Reveal a card secret once"
			},
			{
				"name": "cards_agent_card_search_gift_cards",
				"legacy": "agent_card_search_gift_cards",
				"group": "cards",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Search gift and prepaid card products"
			},
			{
				"name": "cards_agent_card_search_merchants",
				"legacy": "agent_card_search_merchants",
				"group": "cards",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Search card merchants"
			},
			{
				"name": "cards_agent_card_status",
				"legacy": "agent_card_status",
				"group": "cards",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Refresh a card from the provider"
			},
			{
				"name": "cards_agent_card_withdraw",
				"legacy": "agent_card_withdraw",
				"group": "cards",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Withdraw a prepaid balance to USDC"
			},
			{
				"name": "chat_ibm_granite_analyze",
				"legacy": "ibm_granite_analyze",
				"group": "chat",
				"tier": "read",
				"source": "ibm-mcp",
				"scope": null,
				"public": false,
				"title": "IBM Granite Analyze ($0.04)"
			},
			{
				"name": "chat_ibm_granite_chat",
				"legacy": "ibm_granite_chat",
				"group": "chat",
				"tier": "read",
				"source": "ibm-mcp",
				"scope": null,
				"public": false,
				"title": "IBM Granite Chat ($0.02)"
			},
			{
				"name": "chat_ibm_granite_code",
				"legacy": "ibm_granite_code",
				"group": "chat",
				"tier": "read",
				"source": "ibm-mcp",
				"scope": null,
				"public": false,
				"title": "IBM Granite Code ($0.025)"
			},
			{
				"name": "chat_ibm_granite_embed",
				"legacy": "ibm_granite_embed",
				"group": "chat",
				"tier": "read",
				"source": "ibm-mcp",
				"scope": null,
				"public": false,
				"title": "IBM Granite Embed ($0.005)"
			},
			{
				"name": "chat_ibm_granite_forecast",
				"legacy": "ibm_granite_forecast",
				"group": "chat",
				"tier": "read",
				"source": "ibm-mcp",
				"scope": null,
				"public": false,
				"title": "IBM Granite Forecast ($0.05)"
			},
			{
				"name": "commerce_agent_buy",
				"legacy": "agent_buy",
				"group": "commerce",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Quote a purchase"
			},
			{
				"name": "commerce_agent_buy_confirm",
				"legacy": "agent_buy_confirm",
				"group": "commerce",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Pay for a quoted purchase"
			},
			{
				"name": "commerce_agent_sell",
				"legacy": "agent_sell",
				"group": "commerce",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List an offer for sale"
			},
			{
				"name": "commerce_agent_send",
				"legacy": "agent_send",
				"group": "commerce",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Send funds from the agent wallet"
			},
			{
				"name": "commerce_agent_send_preview",
				"legacy": "agent_send_preview",
				"group": "commerce",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a transfer"
			},
			{
				"name": "commerce_invoice_cancel",
				"legacy": "invoice_cancel",
				"group": "commerce",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Cancel an open invoice"
			},
			{
				"name": "commerce_invoice_create",
				"legacy": "invoice_create",
				"group": "commerce",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Create an invoice"
			},
			{
				"name": "commerce_invoice_details",
				"legacy": "invoice_details",
				"group": "commerce",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read one invoice"
			},
			{
				"name": "commerce_invoice_list",
				"legacy": "invoice_list",
				"group": "commerce",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List invoices"
			},
			{
				"name": "commerce_invoice_verify",
				"legacy": "invoice_verify",
				"group": "commerce",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Check an invoice on-chain now"
			},
			{
				"name": "commerce_offer_list",
				"legacy": "offer_list",
				"group": "commerce",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Browse offers"
			},
			{
				"name": "commerce_spending_check",
				"legacy": "spending_check",
				"group": "commerce",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read this agent's spending limits"
			},
			{
				"name": "commerce_spending_setup",
				"legacy": "spending_setup",
				"group": "commerce",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Propose a change to this agent's limits"
			},
			{
				"name": "domains_domain_check",
				"legacy": "domain_check",
				"group": "domains",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Check one web domain"
			},
			{
				"name": "domains_domain_connect",
				"legacy": "domain_connect",
				"group": "domains",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Connect a domain to an agent page"
			},
			{
				"name": "domains_domain_connect_status",
				"legacy": "domain_connect_status",
				"group": "domains",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Check a connected domain"
			},
			{
				"name": "domains_domain_pricing",
				"legacy": "domain_pricing",
				"group": "domains",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "List domain TLD pricing"
			},
			{
				"name": "domains_domain_register",
				"legacy": "domain_register",
				"group": "domains",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Register a domain (spends credits)"
			},
			{
				"name": "domains_domain_register_quote",
				"legacy": "domain_register_quote",
				"group": "domains",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Quote a domain registration"
			},
			{
				"name": "domains_domain_search",
				"legacy": "domain_search",
				"group": "domains",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Search web domains"
			},
			{
				"name": "domains_domain_status",
				"legacy": "domain_status",
				"group": "domains",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Poll a domain registration"
			},
			{
				"name": "gateway_image_generate",
				"legacy": "image_generate",
				"group": "gateway",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Generate an image"
			},
			{
				"name": "gateway_parse_document",
				"legacy": "parse_document",
				"group": "gateway",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Parse a document"
			},
			{
				"name": "gateway_transcribe",
				"legacy": "transcribe",
				"group": "gateway",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Speech to text"
			},
			{
				"name": "gateway_tts",
				"legacy": "tts",
				"group": "gateway",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Text to speech"
			},
			{
				"name": "gateway_web_fetch",
				"legacy": "web_fetch",
				"group": "gateway",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Fetch a web page"
			},
			{
				"name": "gateway_web_search",
				"legacy": "web_search",
				"group": "gateway",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Search the web"
			},
			{
				"name": "integrations_configure_twitter_posting",
				"legacy": "configure_twitter_posting",
				"group": "integrations",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Set an agent's X posting policy"
			},
			{
				"name": "integrations_connect_twitter",
				"legacy": "connect_twitter",
				"group": "integrations",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Connect an X account to an agent"
			},
			{
				"name": "integrations_create_gated_embed",
				"legacy": "create_gated_embed",
				"group": "integrations",
				"tier": "write",
				"source": "mcp",
				"scope": "avatars:write",
				"public": false,
				"title": "Create a token-gated embed"
			},
			{
				"name": "integrations_get_embed_code",
				"legacy": "get_embed_code",
				"group": "integrations",
				"tier": "read",
				"source": "mcp",
				"scope": "avatars:read",
				"public": false,
				"title": "Get embed code"
			},
			{
				"name": "integrations_home_activate",
				"legacy": "home_activate",
				"group": "integrations",
				"tier": "financial",
				"source": "mcp",
				"scope": "home:act",
				"public": false,
				"title": "Activate a home scene"
			},
			{
				"name": "integrations_home_call",
				"legacy": "home_call",
				"group": "integrations",
				"tier": "financial",
				"source": "mcp",
				"scope": "home:act",
				"public": false,
				"title": "Call a home service"
			},
			{
				"name": "integrations_home_grants",
				"legacy": "home_grants",
				"group": "integrations",
				"tier": "read",
				"source": "mcp",
				"scope": "home:read",
				"public": false,
				"title": "Standing home permissions"
			},
			{
				"name": "integrations_home_list_macros",
				"legacy": "home_list_macros",
				"group": "integrations",
				"tier": "read",
				"source": "mcp",
				"scope": "home:read",
				"public": false,
				"title": "List home scenes and scripts"
			},
			{
				"name": "integrations_home_status",
				"legacy": "home_status",
				"group": "integrations",
				"tier": "read",
				"source": "mcp",
				"scope": "home:read",
				"public": false,
				"title": "Home status"
			},
			{
				"name": "integrations_install_integration",
				"legacy": "install_integration",
				"group": "integrations",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Connect an integration to an agent"
			},
			{
				"name": "integrations_list_integrations",
				"legacy": "list_integrations",
				"group": "integrations",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List agent integrations"
			},
			{
				"name": "integrations_list_scheduled_posts",
				"legacy": "list_scheduled_posts",
				"group": "integrations",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List an agent's queued X posts"
			},
			{
				"name": "integrations_post_to_x",
				"legacy": "post_to_x",
				"group": "integrations",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Post to X as an agent"
			},
			{
				"name": "integrations_remove_integration",
				"legacy": "remove_integration",
				"group": "integrations",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Remove an integration from an agent"
			},
			{
				"name": "intelligence_alert_rule_create",
				"legacy": "alert_rule_create",
				"group": "intelligence",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Create an alert rule"
			},
			{
				"name": "intelligence_alert_rule_delete",
				"legacy": "alert_rule_delete",
				"group": "intelligence",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Delete an alert rule"
			},
			{
				"name": "intelligence_alert_rule_list",
				"legacy": "alert_rule_list",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List alert rules"
			},
			{
				"name": "intelligence_crypto_data",
				"legacy": "crypto_data",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Crypto Data API"
			},
			{
				"name": "intelligence_get_bonding_curve",
				"legacy": "get_bonding_curve",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Bonding Curve"
			},
			{
				"name": "intelligence_get_coin_intel",
				"legacy": "get_coin_intel",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Coin Intel"
			},
			{
				"name": "intelligence_get_new_tokens",
				"legacy": "get_new_tokens",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "New Tokens"
			},
			{
				"name": "intelligence_get_oracle_conviction",
				"legacy": "get_oracle_conviction",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Oracle Conviction"
			},
			{
				"name": "intelligence_get_token_details",
				"legacy": "get_token_details",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Token Details"
			},
			{
				"name": "intelligence_get_token_holders",
				"legacy": "get_token_holders",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Token Holders"
			},
			{
				"name": "intelligence_get_token_trades",
				"legacy": "get_token_trades",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Token Trades"
			},
			{
				"name": "intelligence_get_trending_tokens",
				"legacy": "get_trending_tokens",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Trending Tokens"
			},
			{
				"name": "intelligence_kol_leaderboard",
				"legacy": "kol_leaderboard",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "KOL Leaderboard"
			},
			{
				"name": "intelligence_oracle_coin",
				"legacy": "oracle_coin",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Oracle verdict for one coin"
			},
			{
				"name": "intelligence_oracle_top_plays",
				"legacy": "oracle_top_plays",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Oracle top conviction plays"
			},
			{
				"name": "intelligence_oracle_watch_status",
				"legacy": "oracle_watch_status",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Oracle watch status + track record"
			},
			{
				"name": "intelligence_pumpfun_creator_intel",
				"legacy": "pumpfun_creator_intel",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Pump.fun creator intel"
			},
			{
				"name": "intelligence_pumpfun_first_claims",
				"legacy": "pumpfun_first_claims",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "First Creator Fee Claims"
			},
			{
				"name": "intelligence_pumpfun_list_claims",
				"legacy": "pumpfun_list_claims",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "List Creator Fee Claims"
			},
			{
				"name": "intelligence_pumpfun_recent_claims",
				"legacy": "pumpfun_recent_claims",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Recent pump.fun claims"
			},
			{
				"name": "intelligence_pumpfun_recent_graduations",
				"legacy": "pumpfun_recent_graduations",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Recent pump.fun graduations"
			},
			{
				"name": "intelligence_pumpfun_token_intel",
				"legacy": "pumpfun_token_intel",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Pump.fun token intel"
			},
			{
				"name": "intelligence_pumpfun_watch_claims",
				"legacy": "pumpfun_watch_claims",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": false,
				"title": "Watch Creator Fee Claims"
			},
			{
				"name": "intelligence_pumpfun_watch_whales",
				"legacy": "pumpfun_watch_whales",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": false,
				"title": "Watch Whale Trades"
			},
			{
				"name": "intelligence_robinhood_chain_stats",
				"legacy": "robinhood_chain_stats",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Robinhood Chain stats"
			},
			{
				"name": "intelligence_robinhood_recent_launches",
				"legacy": "robinhood_recent_launches",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Recent Robinhood Chain launches"
			},
			{
				"name": "intelligence_robinhood_token_prices",
				"legacy": "robinhood_token_prices",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Robinhood Chain token prices"
			},
			{
				"name": "intelligence_robinhood_wallet_holdings",
				"legacy": "robinhood_wallet_holdings",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Robinhood Chain wallet holdings"
			},
			{
				"name": "intelligence_sentiment_scout",
				"legacy": "sentiment_scout",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Sourced momentum candidates (Sentiment Scout)"
			},
			{
				"name": "intelligence_social_cashtag_sentiment",
				"legacy": "social_cashtag_sentiment",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Cashtag Sentiment"
			},
			{
				"name": "intelligence_social_x_post_impact",
				"legacy": "social_x_post_impact",
				"group": "intelligence",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "X Post Price Impact"
			},
			{
				"name": "intelligence_token_due_diligence",
				"legacy": "token_due_diligence",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Token due diligence"
			},
			{
				"name": "intelligence_token_snapshot",
				"legacy": "token_snapshot",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Crypto token snapshot"
			},
			{
				"name": "intelligence_trader_leaderboard",
				"legacy": "trader_leaderboard",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Top pump.fun traders"
			},
			{
				"name": "intelligence_trader_profile",
				"legacy": "trader_profile",
				"group": "intelligence",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Full track record for one agent"
			},
			{
				"name": "launch_lanes",
				"legacy": "launch_lanes",
				"group": "launch",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Compare launch lanes"
			},
			{
				"name": "launch_paired_claim_fees",
				"legacy": "paired_claim_fees",
				"group": "launch",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:launch",
				"public": false,
				"title": "Claim paired-coin creator fees"
			},
			{
				"name": "launch_paired_coin",
				"legacy": "paired_coin",
				"group": "launch",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Read a paired coin"
			},
			{
				"name": "launch_paired_coins",
				"legacy": "paired_coins",
				"group": "launch",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "List paired coins"
			},
			{
				"name": "launch_paired_fees",
				"legacy": "paired_fees",
				"group": "launch",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Read paired-coin creator fees"
			},
			{
				"name": "launch_paired_launch",
				"legacy": "paired_launch",
				"group": "launch",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:launch",
				"public": false,
				"title": "Launch a paired coin from an agent wallet"
			},
			{
				"name": "launch_paired_launch_quote",
				"legacy": "paired_launch_quote",
				"group": "launch",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Quote a paired-coin launch"
			},
			{
				"name": "launch_paired_markets",
				"legacy": "paired_markets",
				"group": "launch",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "List paired-coin markets"
			},
			{
				"name": "launch_pumpfun_prepare_launch",
				"legacy": "pumpfun_prepare_launch",
				"group": "launch",
				"tier": "write",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Prepare a pump.fun launch for a human to sign"
			},
			{
				"name": "launch_pumpfun_upload_metadata",
				"legacy": "pumpfun_upload_metadata",
				"group": "launch",
				"tier": "write",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": false,
				"title": "Upload Coin Metadata"
			},
			{
				"name": "launch_pumpfun_vanity_mint",
				"legacy": "pumpfun_vanity_mint",
				"group": "launch",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": false,
				"title": "Vanity Mint Keypair"
			},
			{
				"name": "launch_status",
				"legacy": "launch_status",
				"group": "launch",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Read a launch"
			},
			{
				"name": "launch_uniswap_launch",
				"legacy": "uniswap_launch",
				"group": "launch",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Launch a coin with a Uniswap pool"
			},
			{
				"name": "launch_uniswap_launch_quote",
				"legacy": "uniswap_launch_quote",
				"group": "launch",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Quote a Uniswap-lane launch"
			},
			{
				"name": "lending_lend_deposit",
				"legacy": "lend_deposit",
				"group": "lending",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Supply to lending"
			},
			{
				"name": "lending_lend_markets",
				"legacy": "lend_markets",
				"group": "lending",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List lending markets"
			},
			{
				"name": "lending_lend_positions",
				"legacy": "lend_positions",
				"group": "lending",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read lending positions"
			},
			{
				"name": "lending_lend_preview",
				"legacy": "lend_preview",
				"group": "lending",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a lending deposit or withdraw"
			},
			{
				"name": "lending_lend_withdraw",
				"legacy": "lend_withdraw",
				"group": "lending",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Withdraw from lending"
			},
			{
				"name": "mail_agent_mail_create",
				"legacy": "agent_mail_create",
				"group": "mail",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Create the agent mailbox"
			},
			{
				"name": "mail_agent_mail_delete",
				"legacy": "agent_mail_delete",
				"group": "mail",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Delete an email"
			},
			{
				"name": "mail_agent_mail_get_address",
				"legacy": "agent_mail_get_address",
				"group": "mail",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Get the agent email address"
			},
			{
				"name": "mail_agent_mail_list",
				"legacy": "agent_mail_list",
				"group": "mail",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "List the agent inbox"
			},
			{
				"name": "mail_agent_mail_quote",
				"legacy": "agent_mail_quote",
				"group": "mail",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Quote a mailbox or a send"
			},
			{
				"name": "mail_agent_mail_read",
				"legacy": "agent_mail_read",
				"group": "mail",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Read one email"
			},
			{
				"name": "mail_agent_mail_reply",
				"legacy": "agent_mail_reply",
				"group": "mail",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Reply to an email"
			},
			{
				"name": "mail_agent_mail_search",
				"legacy": "agent_mail_search",
				"group": "mail",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Search the agent mailbox"
			},
			{
				"name": "mail_agent_mail_send",
				"legacy": "agent_mail_send",
				"group": "mail",
				"tier": "financial",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Send an email"
			},
			{
				"name": "mail_inbox_list",
				"legacy": "inbox_list",
				"group": "mail",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "List received mail"
			},
			{
				"name": "mail_inbox_read",
				"legacy": "inbox_read",
				"group": "mail",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Read a received email"
			},
			{
				"name": "mail_inbox_wait_for_code",
				"legacy": "inbox_wait_for_code",
				"group": "mail",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Wait for a verification code"
			},
			{
				"name": "marketplace_accept_marketplace_bid",
				"legacy": "accept_marketplace_bid",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Accept a bid"
			},
			{
				"name": "marketplace_browse_marketplace",
				"legacy": "browse_marketplace",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Browse agents for sale"
			},
			{
				"name": "marketplace_browse_public_agents",
				"legacy": "browse_public_agents",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Browse public agents"
			},
			{
				"name": "marketplace_buy_now",
				"legacy": "buy_now",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Buy an agent now"
			},
			{
				"name": "marketplace_create_marketplace_listing",
				"legacy": "create_marketplace_listing",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List an agent for sale"
			},
			{
				"name": "marketplace_delist_marketplace_listing",
				"legacy": "delist_marketplace_listing",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Delist an agent"
			},
			{
				"name": "marketplace_get_agent_transfer",
				"legacy": "get_agent_transfer",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Settlement progress"
			},
			{
				"name": "marketplace_get_listing",
				"legacy": "get_listing",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Get an agent listing"
			},
			{
				"name": "marketplace_get_marketplace_history",
				"legacy": "get_marketplace_history",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Get marketplace history"
			},
			{
				"name": "marketplace_get_my_bids",
				"legacy": "get_my_bids",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "My bids"
			},
			{
				"name": "marketplace_get_received_bids",
				"legacy": "get_received_bids",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Bids on my listings"
			},
			{
				"name": "marketplace_human_task_approve",
				"legacy": "human_task_approve",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Approve a human task"
			},
			{
				"name": "marketplace_human_task_approve_preview",
				"legacy": "human_task_approve_preview",
				"group": "marketplace",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a task payout"
			},
			{
				"name": "marketplace_human_task_cancel",
				"legacy": "human_task_cancel",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Cancel a human task"
			},
			{
				"name": "marketplace_human_task_dispute",
				"legacy": "human_task_dispute",
				"group": "marketplace",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Dispute a human task"
			},
			{
				"name": "marketplace_human_task_list",
				"legacy": "human_task_list",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Browse human tasks"
			},
			{
				"name": "marketplace_human_task_post",
				"legacy": "human_task_post",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Post a human task"
			},
			{
				"name": "marketplace_human_task_quote",
				"legacy": "human_task_quote",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price a human task"
			},
			{
				"name": "marketplace_human_task_status",
				"legacy": "human_task_status",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Get a human task"
			},
			{
				"name": "marketplace_list_bounties",
				"legacy": "list_bounties",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List open bounties and hackathons"
			},
			{
				"name": "marketplace_place_bid",
				"legacy": "place_bid",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Bid on an agent"
			},
			{
				"name": "marketplace_preview_marketplace_action",
				"legacy": "preview_marketplace_action",
				"group": "marketplace",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a marketplace action"
			},
			{
				"name": "marketplace_reject_marketplace_bid",
				"legacy": "reject_marketplace_bid",
				"group": "marketplace",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Reject a bid"
			},
			{
				"name": "marketplace_resume_agent_transfer",
				"legacy": "resume_agent_transfer",
				"group": "marketplace",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Resume a stalled sale"
			},
			{
				"name": "marketplace_withdraw_marketplace_bid",
				"legacy": "withdraw_marketplace_bid",
				"group": "marketplace",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Withdraw my bid"
			},
			{
				"name": "perps_account",
				"legacy": "perps_account",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read an agent perps account"
			},
			{
				"name": "perps_action_preview",
				"legacy": "perps_action_preview",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a perps funds or kill-switch action"
			},
			{
				"name": "perps_collateral_deposit",
				"legacy": "perps_collateral_deposit",
				"group": "perps",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Deposit perps collateral"
			},
			{
				"name": "perps_collateral_withdraw",
				"legacy": "perps_collateral_withdraw",
				"group": "perps",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Withdraw perps collateral"
			},
			{
				"name": "perps_flatten",
				"legacy": "perps_flatten",
				"group": "perps",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Perps kill switch: flatten everything"
			},
			{
				"name": "perps_limits",
				"legacy": "perps_limits",
				"group": "perps",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Tighten perps limits and set alerts"
			},
			{
				"name": "perps_market_data",
				"legacy": "perps_market_data",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read one perps market"
			},
			{
				"name": "perps_markets",
				"legacy": "perps_markets",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List perpetual futures markets"
			},
			{
				"name": "perps_order_cancel",
				"legacy": "perps_order_cancel",
				"group": "perps",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Cancel a perps order or trigger"
			},
			{
				"name": "perps_order_execute",
				"legacy": "perps_order_execute",
				"group": "perps",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place a perps order"
			},
			{
				"name": "perps_order_preview",
				"legacy": "perps_order_preview",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a perps order"
			},
			{
				"name": "perps_papertrade_account",
				"legacy": "papertrade_account",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read a Papertrade wallet"
			},
			{
				"name": "perps_papertrade_markets",
				"legacy": "papertrade_markets",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List Papertrade markets"
			},
			{
				"name": "perps_papertrade_protocol",
				"legacy": "papertrade_protocol",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Check Papertrade protocol health"
			},
			{
				"name": "perps_papertrade_quote",
				"legacy": "papertrade_quote",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Quote a Papertrade position"
			},
			{
				"name": "perps_positions",
				"legacy": "perps_positions",
				"group": "perps",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List perps positions and orders"
			},
			{
				"name": "predictions_close",
				"legacy": "predictions_close",
				"group": "predictions",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Close a prediction position"
			},
			{
				"name": "predictions_close_preview",
				"legacy": "predictions_close_preview",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview closing a prediction position"
			},
			{
				"name": "predictions_duel_accept",
				"legacy": "duel_accept",
				"group": "predictions",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Answer a duel challenge"
			},
			{
				"name": "predictions_duel_challenge",
				"legacy": "duel_challenge",
				"group": "predictions",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Challenge another agent to a duel"
			},
			{
				"name": "predictions_duel_details",
				"legacy": "duel_details",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Duel details"
			},
			{
				"name": "predictions_duel_markets",
				"legacy": "duel_markets",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Duels, challenges and leaderboard"
			},
			{
				"name": "predictions_event",
				"legacy": "predictions_event",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Research one prediction event"
			},
			{
				"name": "predictions_event_market",
				"legacy": "event_market",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read one Event Market"
			},
			{
				"name": "predictions_event_market_agent_pick",
				"legacy": "event_market_agent_pick",
				"group": "predictions",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Call a winner as an agent"
			},
			{
				"name": "predictions_event_market_analyze",
				"legacy": "event_market_analyze",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Analyze an Event Market"
			},
			{
				"name": "predictions_event_market_forecasters",
				"legacy": "event_market_forecasters",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Ranked Event Market forecasters"
			},
			{
				"name": "predictions_event_market_pick",
				"legacy": "event_market_pick",
				"group": "predictions",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Pick a winner in an Event Market"
			},
			{
				"name": "predictions_event_markets_list",
				"legacy": "event_markets_list",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List Event Markets"
			},
			{
				"name": "predictions_events",
				"legacy": "predictions_events",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Browse prediction markets"
			},
			{
				"name": "predictions_open",
				"legacy": "predictions_open",
				"group": "predictions",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place a prediction order"
			},
			{
				"name": "predictions_open_preview",
				"legacy": "predictions_open_preview",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a prediction order"
			},
			{
				"name": "predictions_positions",
				"legacy": "predictions_positions",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "The agent's prediction positions"
			},
			{
				"name": "predictions_redeem",
				"legacy": "predictions_redeem",
				"group": "predictions",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Redeem a resolved prediction position"
			},
			{
				"name": "predictions_redeem_preview",
				"legacy": "predictions_redeem_preview",
				"group": "predictions",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview redeeming a resolved position"
			},
			{
				"name": "predictions_watch",
				"legacy": "predictions_watch",
				"group": "predictions",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Watch a prediction market"
			},
			{
				"name": "runs_automation_create",
				"legacy": "automation_create",
				"group": "runs",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Create an automation"
			},
			{
				"name": "runs_automation_delete",
				"legacy": "automation_delete",
				"group": "runs",
				"tier": "financial",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Delete an automation"
			},
			{
				"name": "runs_automation_get",
				"legacy": "automation_get",
				"group": "runs",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Get one automation"
			},
			{
				"name": "runs_automation_list",
				"legacy": "automation_list",
				"group": "runs",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "List automations"
			},
			{
				"name": "runs_automation_trigger",
				"legacy": "automation_trigger",
				"group": "runs",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Fire an automation now"
			},
			{
				"name": "runs_automation_update",
				"legacy": "automation_update",
				"group": "runs",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Edit an automation"
			},
			{
				"name": "runs_cancel_agent_run",
				"legacy": "cancel_agent_run",
				"group": "runs",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Cancel a run"
			},
			{
				"name": "runs_create_agent_run",
				"legacy": "create_agent_run",
				"group": "runs",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Give an agent a goal to pursue on its own"
			},
			{
				"name": "runs_execute_code",
				"legacy": "execute_code",
				"group": "runs",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Run code in a sandbox"
			},
			{
				"name": "runs_get_agent_run_steps",
				"legacy": "get_agent_run_steps",
				"group": "runs",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Read a run step by step"
			},
			{
				"name": "runs_read_file",
				"legacy": "read_file",
				"group": "runs",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read a sandbox workspace file"
			},
			{
				"name": "runs_terminal",
				"legacy": "terminal",
				"group": "runs",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Run a command in a sandbox terminal"
			},
			{
				"name": "runs_update_agent_run",
				"legacy": "update_agent_run",
				"group": "runs",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Pause, resume, or raise the budget of a run"
			},
			{
				"name": "runs_write_file",
				"legacy": "write_file",
				"group": "runs",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Write a sandbox workspace file"
			},
			{
				"name": "skills_browse_external_skills",
				"legacy": "browse_external_skills",
				"group": "skills",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Browse external skill registries"
			},
			{
				"name": "skills_create_custom_skill",
				"legacy": "create_custom_skill",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Write a custom skill for an agent"
			},
			{
				"name": "skills_delete_custom_skill",
				"legacy": "delete_custom_skill",
				"group": "skills",
				"tier": "financial",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Delete a custom skill"
			},
			{
				"name": "skills_external_skill_update_diff",
				"legacy": "external_skill_update_diff",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Check an imported skill for upstream changes"
			},
			{
				"name": "skills_get_custom_skill",
				"legacy": "get_custom_skill",
				"group": "skills",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "Get one custom skill"
			},
			{
				"name": "skills_import_community_skill",
				"legacy": "import_community_skill",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Import a community skill onto an agent"
			},
			{
				"name": "skills_install_external_skill",
				"legacy": "install_external_skill",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Install a scanned external skill"
			},
			{
				"name": "skills_list_available_skills",
				"legacy": "list_available_skills",
				"group": "skills",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Browse community skills"
			},
			{
				"name": "skills_list_custom_skills",
				"legacy": "list_custom_skills",
				"group": "skills",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "List an agent's custom skills"
			},
			{
				"name": "skills_list_skill_candidates",
				"legacy": "list_skill_candidates",
				"group": "skills",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "List suggested skills"
			},
			{
				"name": "skills_scan_external_skill",
				"legacy": "scan_external_skill",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Scan an external skill for install"
			},
			{
				"name": "skills_skill_fork",
				"legacy": "skill_fork",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Fork a skill"
			},
			{
				"name": "skills_skill_publish",
				"legacy": "skill_publish",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Publish a skill to the three.ws registry"
			},
			{
				"name": "skills_update_custom_skill",
				"legacy": "update_custom_skill",
				"group": "skills",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Edit or toggle a custom skill"
			},
			{
				"name": "trading_arbitrage_prices",
				"legacy": "arbitrage_prices",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Cross-venue prices"
			},
			{
				"name": "trading_arbitrage_quote",
				"legacy": "arbitrage_quote",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Two-leg arbitrage quote"
			},
			{
				"name": "trading_copy_status",
				"legacy": "copy_status",
				"group": "trading",
				"tier": "read",
				"source": "mcp",
				"scope": "agents:read",
				"public": false,
				"title": "My copy subscriptions"
			},
			{
				"name": "trading_copy_subscribe",
				"legacy": "copy_subscribe",
				"group": "trading",
				"tier": "write",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Subscribe to copy a trader"
			},
			{
				"name": "trading_dca_cancel",
				"legacy": "dca_cancel",
				"group": "trading",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Cancel a DCA schedule"
			},
			{
				"name": "trading_dca_create",
				"legacy": "dca_create",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Create a DCA schedule"
			},
			{
				"name": "trading_dca_list",
				"legacy": "dca_list",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List DCA schedules"
			},
			{
				"name": "trading_dca_preview",
				"legacy": "dca_preview",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview a DCA schedule"
			},
			{
				"name": "trading_get_indicators",
				"legacy": "get_indicators",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Technical indicators"
			},
			{
				"name": "trading_get_market_signals",
				"legacy": "get_market_signals",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Market signals"
			},
			{
				"name": "trading_get_news_feed",
				"legacy": "get_news_feed",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Crypto news feed"
			},
			{
				"name": "trading_get_price",
				"legacy": "get_price",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Live token price"
			},
			{
				"name": "trading_ladder_order_create",
				"legacy": "ladder_order_create",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place a ladder"
			},
			{
				"name": "trading_limit_order_cancel",
				"legacy": "limit_order_cancel",
				"group": "trading",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Cancel an order"
			},
			{
				"name": "trading_limit_order_create",
				"legacy": "limit_order_create",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place a limit order"
			},
			{
				"name": "trading_limit_order_history",
				"legacy": "limit_order_history",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Order history"
			},
			{
				"name": "trading_limit_order_list",
				"legacy": "limit_order_list",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List orders"
			},
			{
				"name": "trading_oco_order_create",
				"legacy": "oco_order_create",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place an OCO pair"
			},
			{
				"name": "trading_oracle_arm_watch",
				"legacy": "oracle_arm_watch",
				"group": "trading",
				"tier": "financial",
				"source": "mcp",
				"scope": "agents:write",
				"public": false,
				"title": "Arm agent Oracle watch"
			},
			{
				"name": "trading_order_book",
				"legacy": "order_book",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Agent order book"
			},
			{
				"name": "trading_order_preview",
				"legacy": "order_preview",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview an order"
			},
			{
				"name": "trading_pumpfun_quote_swap",
				"legacy": "pumpfun_quote_swap",
				"group": "trading",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Swap Quote (Read-Only)"
			},
			{
				"name": "trading_sniper_activate",
				"legacy": "sniper_activate",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Arm the sniper"
			},
			{
				"name": "trading_sniper_activate_preview",
				"legacy": "sniper_activate_preview",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Preview arming the sniper"
			},
			{
				"name": "trading_sniper_deactivate",
				"legacy": "sniper_deactivate",
				"group": "trading",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Disarm the sniper"
			},
			{
				"name": "trading_sniper_status",
				"legacy": "sniper_status",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Sniper status"
			},
			{
				"name": "trading_sniper_subscribe",
				"legacy": "sniper_subscribe",
				"group": "trading",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Follow a signal feed"
			},
			{
				"name": "trading_stop_order_create",
				"legacy": "stop_order_create",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place a stop order"
			},
			{
				"name": "trading_swap_execute",
				"legacy": "swap_execute",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Execute a quoted swap"
			},
			{
				"name": "trading_swap_quote",
				"legacy": "swap_quote",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Compare swap routes"
			},
			{
				"name": "trading_swap_simulate",
				"legacy": "swap_simulate",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Simulate a quoted swap"
			},
			{
				"name": "trading_token_search",
				"legacy": "token_search",
				"group": "trading",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Search Solana tokens"
			},
			{
				"name": "trading_trade_receipt",
				"legacy": "trade_receipt",
				"group": "trading",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": false,
				"title": "Why an agent took one trade"
			},
			{
				"name": "trading_trailing_order_create",
				"legacy": "trailing_order_create",
				"group": "trading",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place a trailing stop"
			},
			{
				"name": "utility_expand",
				"legacy": "expand",
				"group": "utility",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Expand a summarized result"
			},
			{
				"name": "utility_get_feedback_repro",
				"legacy": "get_feedback_repro",
				"group": "utility",
				"tier": "read",
				"source": "mcp",
				"scope": "feedback:read",
				"public": false,
				"title": "Compile a feedback report into a failing test"
			},
			{
				"name": "utility_getting_started",
				"legacy": "getting_started",
				"group": "utility",
				"tier": "read",
				"source": "unified",
				"scope": null,
				"public": true,
				"title": "Getting Started (free)"
			},
			{
				"name": "utility_ibm_granite_getting_started",
				"legacy": "ibm_granite_getting_started",
				"group": "utility",
				"tier": "read",
				"source": "ibm-mcp",
				"scope": null,
				"public": true,
				"title": "Getting Started (free)"
			},
			{
				"name": "utility_list_feedback",
				"legacy": "list_feedback",
				"group": "utility",
				"tier": "read",
				"source": "mcp",
				"scope": "feedback:read",
				"public": false,
				"title": "List feedback"
			},
			{
				"name": "utility_pumpfun_bot_status",
				"legacy": "pumpfun_bot_status",
				"group": "utility",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Indexer Status"
			},
			{
				"name": "utility_read_resource",
				"legacy": "read_resource",
				"group": "utility",
				"tier": "read",
				"source": "unified",
				"scope": null,
				"public": true,
				"title": "Read a three:// resource"
			},
			{
				"name": "utility_search_docs",
				"legacy": "search_docs",
				"group": "utility",
				"tier": "read",
				"source": "mcp",
				"scope": null,
				"public": true,
				"title": "Search the three.ws documentation"
			},
			{
				"name": "utility_sns_resolve",
				"legacy": "sns_resolve",
				"group": "utility",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Resolve .sol Domain"
			},
			{
				"name": "utility_sns_reverseLookup",
				"legacy": "sns_reverseLookup",
				"group": "utility",
				"tier": "read",
				"source": "pump-fun-mcp",
				"scope": null,
				"public": true,
				"title": "Reverse .sol Lookup"
			},
			{
				"name": "utility_validate_spatial_response",
				"legacy": "validate_spatial_response",
				"group": "utility",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Validate a Spatial MCP 3D artifact"
			},
			{
				"name": "wallet_add_to_whitelist",
				"legacy": "add_to_whitelist",
				"group": "wallet",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Propose a wallet allowlist destination"
			},
			{
				"name": "wallet_get_balance_history",
				"legacy": "get_balance_history",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "An agent's net-worth history"
			},
			{
				"name": "wallet_get_linked_accounts",
				"legacy": "get_linked_accounts",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "List everything linked to the account"
			},
			{
				"name": "wallet_get_pnl",
				"legacy": "get_pnl",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "An agent's profit and loss"
			},
			{
				"name": "wallet_get_portfolio",
				"legacy": "get_portfolio",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Value an agent's portfolio"
			},
			{
				"name": "wallet_get_private_wallet_balance",
				"legacy": "get_private_wallet_balance",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Read the owner's own wallet balance"
			},
			{
				"name": "wallet_get_wallet_summaries",
				"legacy": "get_wallet_summaries",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Summarize every wallet on the account"
			},
			{
				"name": "wallet_get_whitelist",
				"legacy": "get_whitelist",
				"group": "wallet",
				"tier": "read",
				"source": "mcp",
				"scope": "wallet:read",
				"public": false,
				"title": "Get wallet allowlist"
			},
			{
				"name": "wallet_persona_identity",
				"legacy": "persona_identity",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Read a persona's on-chain identity: wallet, reputation, holdings"
			},
			{
				"name": "wallet_persona_payment_preview",
				"legacy": "persona_payment_preview",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Preview a USDC payment from a persona's wallet (no funds move)"
			},
			{
				"name": "wallet_persona_send",
				"legacy": "persona_send",
				"group": "wallet",
				"tier": "financial",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Send USDC from a persona's own wallet"
			},
			{
				"name": "wallet_persona_tip",
				"legacy": "persona_tip",
				"group": "wallet",
				"tier": "financial",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Tip USDC from a persona's own wallet"
			},
			{
				"name": "wallet_provision_wallet",
				"legacy": "provision_wallet",
				"group": "wallet",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Create the agent's wallet"
			},
			{
				"name": "wallet_remove_from_whitelist",
				"legacy": "remove_from_whitelist",
				"group": "wallet",
				"tier": "write",
				"source": "mcp",
				"scope": "wallet:write",
				"public": false,
				"title": "Remove a wallet allowlist destination"
			},
			{
				"name": "wallet_set_external_wallet",
				"legacy": "set_external_wallet",
				"group": "wallet",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Attach a wallet you control as a payout wallet"
			},
			{
				"name": "wallet_status",
				"legacy": "wallet_status",
				"group": "wallet",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Check the agent's wallet"
			},
			{
				"name": "x402_bazaar_service_details",
				"legacy": "bazaar_service_details",
				"group": "x402",
				"tier": "read",
				"source": "mcp-bazaar",
				"scope": null,
				"public": false,
				"title": "Live price details for one x402 service"
			},
			{
				"name": "x402_book_read",
				"legacy": "book_read",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Book Read"
			},
			{
				"name": "x402_book_read_quote",
				"legacy": "book_read_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Book Read without paying"
			},
			{
				"name": "x402_book_search",
				"legacy": "book_search",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Book Search"
			},
			{
				"name": "x402_book_search_quote",
				"legacy": "book_search_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Book Search without paying"
			},
			{
				"name": "x402_browse_services",
				"legacy": "browse_services",
				"group": "x402",
				"tier": "read",
				"source": "mcp-bazaar",
				"scope": null,
				"public": false,
				"title": "Browse the x402 bazaar"
			},
			{
				"name": "x402_carbon_best_window",
				"legacy": "carbon_best_window",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Grid Carbon: Best Window"
			},
			{
				"name": "x402_carbon_best_window_quote",
				"legacy": "carbon_best_window_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Grid Carbon: Best Window without paying"
			},
			{
				"name": "x402_carbon_now",
				"legacy": "carbon_now",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Grid Carbon: Now"
			},
			{
				"name": "x402_carbon_now_quote",
				"legacy": "carbon_now_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Grid Carbon: Now without paying"
			},
			{
				"name": "x402_domain_rdap_check",
				"legacy": "domain_rdap_check",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Domain Check (RDAP)"
			},
			{
				"name": "x402_domain_rdap_check_bulk",
				"legacy": "domain_rdap_check_bulk",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Domain Check (Bulk RDAP)"
			},
			{
				"name": "x402_domain_rdap_check_bulk_quote",
				"legacy": "domain_rdap_check_bulk_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Domain Check (Bulk RDAP) without paying"
			},
			{
				"name": "x402_domain_rdap_check_quote",
				"legacy": "domain_rdap_check_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Domain Check (RDAP) without paying"
			},
			{
				"name": "x402_find_services",
				"legacy": "find_services",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Find paid services the agent can call"
			},
			{
				"name": "x402_get_service",
				"legacy": "get_service",
				"group": "x402",
				"tier": "read",
				"source": "mcp-bazaar",
				"scope": null,
				"public": false,
				"title": "Get full details for one x402 service"
			},
			{
				"name": "x402_monetize_endpoint",
				"legacy": "monetize_endpoint",
				"group": "x402",
				"tier": "write",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Publish a paid endpoint to earn USDC"
			},
			{
				"name": "x402_news_wire_poll",
				"legacy": "news_wire_poll",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Global News Wire Pulse"
			},
			{
				"name": "x402_news_wire_poll_quote",
				"legacy": "news_wire_poll_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Global News Wire Pulse without paying"
			},
			{
				"name": "x402_news_wire_search",
				"legacy": "news_wire_search",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Global News Wire Search"
			},
			{
				"name": "x402_news_wire_search_quote",
				"legacy": "news_wire_search_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Global News Wire Search without paying"
			},
			{
				"name": "x402_pay_and_call",
				"legacy": "pay_and_call",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Pay an x402 service and return its result"
			},
			{
				"name": "x402_pay_quote",
				"legacy": "pay_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price an x402 payment without paying"
			},
			{
				"name": "x402_places_detail",
				"legacy": "places_detail",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Place Detail"
			},
			{
				"name": "x402_places_detail_quote",
				"legacy": "places_detail_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Place Detail without paying"
			},
			{
				"name": "x402_places_search",
				"legacy": "places_search",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Places Search"
			},
			{
				"name": "x402_places_search_quote",
				"legacy": "places_search_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Places Search without paying"
			},
			{
				"name": "x402_preflight",
				"legacy": "x402_preflight",
				"group": "x402",
				"tier": "read",
				"source": "mcp-3d",
				"scope": null,
				"public": false,
				"title": "Check whether an x402 seller can actually settle before paying it"
			},
			{
				"name": "x402_research_bibliography",
				"legacy": "research_bibliography",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Bibliography Formatter"
			},
			{
				"name": "x402_research_bibliography_quote",
				"legacy": "research_bibliography_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Bibliography Formatter without paying"
			},
			{
				"name": "x402_research_paper",
				"legacy": "research_paper",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Paper Detail & Citation Graph"
			},
			{
				"name": "x402_research_paper_quote",
				"legacy": "research_paper_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Paper Detail & Citation Graph without paying"
			},
			{
				"name": "x402_research_search",
				"legacy": "research_search",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Scholarly Search"
			},
			{
				"name": "x402_research_search_quote",
				"legacy": "research_search_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Scholarly Search without paying"
			},
			{
				"name": "x402_search_services",
				"legacy": "search_services",
				"group": "x402",
				"tier": "read",
				"source": "mcp-bazaar",
				"scope": null,
				"public": false,
				"title": "Search the x402 bazaar"
			},
			{
				"name": "x402_transit_delays",
				"legacy": "transit_delays",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Transit Delay Snapshot"
			},
			{
				"name": "x402_transit_delays_quote",
				"legacy": "transit_delays_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Transit Delay Snapshot without paying"
			},
			{
				"name": "x402_transit_plan",
				"legacy": "transit_plan",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Transit Trip Plan"
			},
			{
				"name": "x402_transit_plan_quote",
				"legacy": "transit_plan_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Transit Trip Plan without paying"
			},
			{
				"name": "x402_weather_forecast",
				"legacy": "weather_forecast",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Weather Guard: Forecast"
			},
			{
				"name": "x402_weather_forecast_quote",
				"legacy": "weather_forecast_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Weather Guard: Forecast without paying"
			},
			{
				"name": "x402_weather_go_no_go",
				"legacy": "weather_go_no_go",
				"group": "x402",
				"tier": "financial",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Weather Guard: Activity Decision"
			},
			{
				"name": "x402_weather_go_no_go_quote",
				"legacy": "weather_go_no_go_quote",
				"group": "x402",
				"tier": "read",
				"source": "mcp-agent",
				"scope": null,
				"public": false,
				"title": "Price Weather Guard: Activity Decision without paying"
			}
		]
	},
	"servers": [
		{
			"id": "mcp",
			"title": "three.ws",
			"endpoint": "/api/mcp",
			"transport": "remote",
			"tools": 158,
			"defaultOn": 140,
			"readOnly": 90,
			"destructive": 19,
			"resources": 7,
			"templates": 10,
			"prompts": 17,
			"auth": "oauth-or-x402"
		},
		{
			"id": "mcp-agent",
			"title": "Agent Wallet",
			"endpoint": "/api/mcp-agent",
			"transport": "remote",
			"tools": 176,
			"defaultOn": 127,
			"readOnly": 84,
			"destructive": 48,
			"resources": 6,
			"templates": 9,
			"prompts": 10,
			"auth": "oauth-or-x402"
		},
		{
			"id": "mcp-3d",
			"title": "3D Studio",
			"endpoint": "/api/mcp-3d",
			"transport": "remote",
			"tools": 40,
			"defaultOn": 38,
			"readOnly": 18,
			"destructive": 2,
			"resources": 3,
			"templates": 2,
			"prompts": 2,
			"auth": "oauth-or-x402"
		},
		{
			"id": "mcp-bazaar",
			"title": "x402 Bazaar",
			"endpoint": "/api/mcp-bazaar",
			"transport": "remote",
			"tools": 6,
			"defaultOn": 6,
			"readOnly": 6,
			"destructive": 0,
			"resources": 3,
			"templates": 0,
			"prompts": 4,
			"auth": "oauth-or-x402"
		},
		{
			"id": "mcp-oracle",
			"title": "Oracle",
			"endpoint": "/api/mcp-oracle",
			"transport": "remote",
			"tools": 14,
			"defaultOn": 14,
			"readOnly": 13,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "none"
		},
		{
			"id": "ibm-mcp",
			"title": "IBM Granite",
			"endpoint": "/api/ibm-mcp",
			"transport": "remote",
			"tools": 6,
			"defaultOn": 6,
			"readOnly": 6,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "x402"
		},
		{
			"id": "mcp-studio",
			"title": "3D Studio (free)",
			"endpoint": "/api/mcp-studio",
			"transport": "remote",
			"tools": 16,
			"defaultOn": 16,
			"readOnly": 6,
			"destructive": 0,
			"resources": 2,
			"templates": 0,
			"prompts": 4,
			"auth": "none"
		},
		{
			"id": "mcp-chatgpt",
			"title": "3D Studio for ChatGPT",
			"endpoint": "/api/mcp-chatgpt",
			"transport": "remote",
			"tools": 8,
			"defaultOn": 8,
			"readOnly": 1,
			"destructive": 0,
			"resources": 1,
			"templates": 0,
			"prompts": 0,
			"auth": "none"
		},
		{
			"id": "mcp-grok",
			"title": "3D Studio for Grok",
			"endpoint": "/api/mcp-grok",
			"transport": "remote",
			"tools": 16,
			"defaultOn": 16,
			"readOnly": 6,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 4,
			"auth": "none"
		},
		{
			"id": "pump-fun-mcp",
			"title": "pump.fun data",
			"endpoint": "/api/pump-fun-mcp",
			"transport": "remote",
			"tools": 25,
			"defaultOn": 25,
			"readOnly": 24,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"indexerTools": 4,
			"auth": "none"
		},
		{
			"id": "chat-mcp",
			"title": "Viewer Control",
			"endpoint": "/api/chat/mcp",
			"transport": "remote",
			"tools": 11,
			"defaultOn": 11,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "oauth"
		},
		{
			"id": "three-ws-mcp-server",
			"title": "@three-ws/mcp-server",
			"endpoint": "npx -y @three-ws/mcp-server",
			"transport": "stdio",
			"tools": 26,
			"defaultOn": 26,
			"readOnly": 17,
			"destructive": 0,
			"resources": 1,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "activity-mcp",
			"title": "@three-ws/activity-mcp",
			"endpoint": "npx -y @three-ws/activity-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 5,
			"readOnly": 5,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "agenc-mcp",
			"title": "@three-ws/agenc-mcp",
			"endpoint": "npx -y @three-ws/agenc-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 5,
			"readOnly": 5,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "agent-trader-mcp",
			"title": "@three-ws/agent-trader-mcp",
			"endpoint": "npx -y @three-ws/agent-trader-mcp",
			"transport": "stdio",
			"tools": 8,
			"defaultOn": 8,
			"readOnly": 5,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "agentcore-payments-mcp",
			"title": "@three-ws/agentcore-payments-mcp",
			"endpoint": "npx -y @three-ws/agentcore-payments-mcp",
			"transport": "stdio",
			"tools": 6,
			"defaultOn": 4,
			"readOnly": 3,
			"destructive": 2,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "agora-mcp",
			"title": "@three-ws/agora-mcp",
			"endpoint": "npx -y @three-ws/agora-mcp",
			"transport": "stdio",
			"tools": 11,
			"defaultOn": 9,
			"readOnly": 7,
			"destructive": 4,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "alerts-mcp",
			"title": "@three-ws/alerts-mcp",
			"endpoint": "npx -y @three-ws/alerts-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 4,
			"readOnly": 2,
			"destructive": 1,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "alibaba-cloud-mcp",
			"title": "@three-ws/alibaba-cloud-mcp",
			"endpoint": "npx -y @three-ws/alibaba-cloud-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 3,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "assistant-mcp",
			"title": "@three-ws/assistant-mcp",
			"endpoint": "npx -y @three-ws/assistant-mcp",
			"transport": "stdio",
			"tools": 2,
			"defaultOn": 2,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "audio-mcp",
			"title": "@three-ws/audio-mcp",
			"endpoint": "npx -y @three-ws/audio-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 5,
			"readOnly": 5,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "autopilot-mcp",
			"title": "@three-ws/autopilot-mcp",
			"endpoint": "npx -y @three-ws/autopilot-mcp",
			"transport": "stdio",
			"tools": 11,
			"defaultOn": 10,
			"readOnly": 5,
			"destructive": 1,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "avatar-agent-mcp",
			"title": "@three-ws/avatar-agent",
			"endpoint": "npx -y @three-ws/avatar-agent",
			"transport": "stdio",
			"tools": 24,
			"defaultOn": 20,
			"readOnly": 15,
			"destructive": 4,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "billing-mcp",
			"title": "@three-ws/billing-mcp",
			"endpoint": "npx -y @three-ws/billing-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 5,
			"readOnly": 5,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "blender-mcp",
			"title": "@three-ws/blender-mcp",
			"endpoint": "npx -y @three-ws/blender-mcp",
			"transport": "stdio",
			"tools": 7,
			"defaultOn": 6,
			"readOnly": 2,
			"destructive": 1,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "brain-mcp",
			"title": "@three-ws/brain-mcp",
			"endpoint": "npx -y @three-ws/brain-mcp",
			"transport": "stdio",
			"tools": 2,
			"defaultOn": 2,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "clash-mcp",
			"title": "@three-ws/clash-mcp",
			"endpoint": "npx -y @three-ws/clash-mcp",
			"transport": "stdio",
			"tools": 4,
			"defaultOn": 4,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "concierge-mcp",
			"title": "@three-ws/concierge-mcp",
			"endpoint": "npx -y @three-ws/concierge-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 3,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "copy-mcp",
			"title": "@three-ws/copy-mcp",
			"endpoint": "npx -y @three-ws/copy-mcp",
			"transport": "stdio",
			"tools": 7,
			"defaultOn": 6,
			"readOnly": 3,
			"destructive": 1,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "herald-mcp",
			"title": "@three-ws/herald-mcp",
			"endpoint": "npx -y @three-ws/herald-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 1,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "home-mcp",
			"title": "@three-ws/home-mcp",
			"endpoint": "npx -y @three-ws/home-mcp",
			"transport": "stdio",
			"tools": 6,
			"defaultOn": 4,
			"readOnly": 4,
			"destructive": 2,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "hq-mcp",
			"title": "@three-ws/hq-mcp",
			"endpoint": "npx -y @three-ws/hq-mcp",
			"transport": "stdio",
			"tools": 10,
			"defaultOn": 10,
			"readOnly": 10,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "ibm-watsonx-mcp",
			"title": "@three-ws/ibm-watsonx-mcp",
			"endpoint": "npx -y @three-ws/ibm-watsonx-mcp",
			"transport": "stdio",
			"tools": 6,
			"defaultOn": 6,
			"readOnly": 6,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "ibm-x402-mcp",
			"title": "@three-ws/ibm-x402-mcp",
			"endpoint": "npx -y @three-ws/ibm-x402-mcp",
			"transport": "stdio",
			"tools": 6,
			"defaultOn": 6,
			"readOnly": 6,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "intel-mcp",
			"title": "@three-ws/intel-mcp",
			"endpoint": "npx -y @three-ws/intel-mcp",
			"transport": "stdio",
			"tools": 7,
			"defaultOn": 7,
			"readOnly": 7,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "knock-mcp",
			"title": "@three-ws/knock-mcp",
			"endpoint": "npx -y @three-ws/knock-mcp",
			"transport": "stdio",
			"tools": 6,
			"defaultOn": 6,
			"readOnly": 4,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "kol-mcp",
			"title": "@three-ws/kol-mcp",
			"endpoint": "npx -y @three-ws/kol-mcp",
			"transport": "stdio",
			"tools": 2,
			"defaultOn": 2,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "loom-mcp",
			"title": "@three-ws/loom-mcp",
			"endpoint": "npx -y @three-ws/loom-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "marketplace-mcp",
			"title": "@three-ws/marketplace-mcp",
			"endpoint": "npx -y @three-ws/marketplace-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 5,
			"readOnly": 5,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "metaplex-agent-mcp",
			"title": "@three-ws/metaplex-agent-mcp",
			"endpoint": "npx -y @three-ws/metaplex-agent-mcp",
			"transport": "stdio",
			"tools": 11,
			"defaultOn": 8,
			"readOnly": 8,
			"destructive": 3,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "naming-mcp",
			"title": "@three-ws/naming-mcp",
			"endpoint": "npx -y @three-ws/naming-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 3,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "notifications-mcp",
			"title": "@three-ws/notifications-mcp",
			"endpoint": "npx -y @three-ws/notifications-mcp",
			"transport": "stdio",
			"tools": 7,
			"defaultOn": 5,
			"readOnly": 2,
			"destructive": 2,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "oracle-mcp",
			"title": "@three-ws/oracle-mcp",
			"endpoint": "npx -y @three-ws/oracle-mcp",
			"transport": "stdio",
			"tools": 12,
			"defaultOn": 12,
			"readOnly": 12,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "portfolio-mcp",
			"title": "@three-ws/portfolio-mcp",
			"endpoint": "npx -y @three-ws/portfolio-mcp",
			"transport": "stdio",
			"tools": 7,
			"defaultOn": 6,
			"readOnly": 5,
			"destructive": 1,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "provenance-mcp",
			"title": "@three-ws/provenance-mcp",
			"endpoint": "npx -y @three-ws/provenance-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "pumpfun-mcp",
			"title": "@three-ws/pumpfun-mcp",
			"endpoint": "npx -y @three-ws/pumpfun-mcp",
			"transport": "stdio",
			"tools": 23,
			"defaultOn": 23,
			"readOnly": 23,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "scene-mcp",
			"title": "@three-ws/scene-mcp",
			"endpoint": "npx -y @three-ws/scene-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 5,
			"readOnly": 2,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "signals-mcp",
			"title": "@three-ws/signals-mcp",
			"endpoint": "npx -y @three-ws/signals-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 4,
			"readOnly": 3,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "solana-memo-media-mcp",
			"title": "@three-ws/solana-memo-media-mcp",
			"endpoint": "npx -y @three-ws/solana-memo-media-mcp",
			"transport": "stdio",
			"tools": 5,
			"defaultOn": 5,
			"readOnly": 5,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "none"
		},
		{
			"id": "three-token-mcp",
			"title": "@three-ws/three-token-mcp",
			"endpoint": "npx -y @three-ws/three-token-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 2,
			"readOnly": 2,
			"destructive": 1,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "threews-avatar-mcp",
			"title": "@three-ws/avatar-mcp",
			"endpoint": "npx -y @three-ws/avatar-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 3,
			"destructive": 0,
			"resources": 1,
			"templates": 0,
			"prompts": 1,
			"auth": "api-key"
		},
		{
			"id": "trading-mcp",
			"title": "@three-ws/trading-mcp",
			"endpoint": "npx -y @three-ws/trading-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 2,
			"destructive": 1,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "tutor-mcp",
			"title": "@three-ws/tutor-mcp",
			"endpoint": "npx -y @three-ws/tutor-mcp",
			"transport": "stdio",
			"tools": 2,
			"defaultOn": 2,
			"readOnly": 1,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "vanity-mcp",
			"title": "@three-ws/vanity-mcp",
			"endpoint": "npx -y @three-ws/vanity-mcp",
			"transport": "stdio",
			"tools": 8,
			"defaultOn": 8,
			"readOnly": 8,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "vision-mcp",
			"title": "@three-ws/vision-mcp",
			"endpoint": "npx -y @three-ws/vision-mcp",
			"transport": "stdio",
			"tools": 3,
			"defaultOn": 3,
			"readOnly": 3,
			"destructive": 0,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		},
		{
			"id": "x402-mcp",
			"title": "@three-ws/x402-mcp",
			"endpoint": "npx -y @three-ws/x402-mcp",
			"transport": "stdio",
			"tools": 22,
			"defaultOn": 21,
			"readOnly": 4,
			"destructive": 18,
			"resources": 0,
			"templates": 0,
			"prompts": 0,
			"auth": "api-key"
		}
	],
	"tools": [
		{
			"name": "getting_started",
			"server": "mcp",
			"title": "Getting Started (free)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to orient.",
			"page": "https://three.ws/mcp-tools/mcp/getting_started"
		},
		{
			"name": "search_catalog",
			"server": "mcp",
			"title": "Search the three.ws asset catalog",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before generating anything: if the catalog already has the prop or character, dropping it in is instant and free where generating one is not.",
			"page": "https://three.ws/mcp-tools/mcp/search_catalog"
		},
		{
			"name": "get_catalog_item",
			"server": "mcp",
			"title": "Read one catalog item",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after search_catalog to inspect one result before you embed it; for paste-ready code call get_item_source instead.",
			"page": "https://three.ws/mcp-tools/mcp/get_catalog_item"
		},
		{
			"name": "get_item_source",
			"server": "mcp",
			"title": "Get paste-ready source for a catalog item",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you are ready to put a catalog item on a page or in an app; call get_catalog_item first if you still need its license or metadata.",
			"page": "https://three.ws/mcp-tools/mcp/get_item_source"
		},
		{
			"name": "list_my_avatars",
			"server": "mcp",
			"title": "List my avatars",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find the id of an avatar you already own before rendering, embedding, or attaching it to an agent; to browse other people's avatars call search_public_avatars instead.",
			"page": "https://three.ws/mcp-tools/mcp/list_my_avatars"
		},
		{
			"name": "get_avatar",
			"server": "mcp",
			"title": "Get avatar",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already have an avatar id or owner+slug and need its model_url or metadata; to find ids call list_my_avatars or search_public_avatars.",
			"page": "https://three.ws/mcp-tools/mcp/get_avatar"
		},
		{
			"name": "search_public_avatars",
			"server": "mcp",
			"title": "Search public avatars",
			"category": "assets",
			"safety": "read",
			"price": 0.001,
			"whenToUse": "Use this to find characters to render when you do not already know an avatar id; for your own avatars call list_my_avatars instead.",
			"page": "https://three.ws/mcp-tools/mcp/search_public_avatars"
		},
		{
			"name": "render_avatar",
			"server": "mcp",
			"title": "Render avatar",
			"category": "assets",
			"safety": "read",
			"price": 0.005,
			"whenToUse": "Use this when the user wants to see and rotate an avatar inline; for a flat image file call render_avatar_image, and for a snippet to paste on another site call get_embed_code.",
			"page": "https://three.ws/mcp-tools/mcp/render_avatar"
		},
		{
			"name": "render_avatar_image",
			"server": "mcp",
			"title": "Render an avatar to an image",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you need a still image rather than an interactive viewer; for a live 3D view call render_avatar.",
			"page": "https://three.ws/mcp-tools/mcp/render_avatar_image"
		},
		{
			"name": "delete_avatar",
			"server": "mcp",
			"title": "Delete avatar",
			"category": "assets",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the user explicitly asks to remove one of their avatars; confirm which one with get_avatar first.",
			"page": "https://three.ws/mcp-tools/mcp/delete_avatar"
		},
		{
			"name": "get_embed_code",
			"server": "mcp",
			"title": "Get embed code",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user wants to show an avatar, agent, or creation on a site they control; for an embed that only token holders can view call create_gated_embed instead.",
			"page": "https://three.ws/mcp-tools/mcp/get_embed_code"
		},
		{
			"name": "create_gated_embed",
			"server": "mcp",
			"title": "Create a token-gated embed",
			"category": "integrations",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the embed should render only for holders of a token; for an open embed anyone can see call get_embed_code.",
			"page": "https://three.ws/mcp-tools/mcp/create_gated_embed"
		},
		{
			"name": "validate_model",
			"server": "mcp",
			"title": "Validate glTF/GLB model",
			"category": "assets",
			"safety": "read",
			"price": 0.01,
			"whenToUse": "Use this before shipping, minting, or embedding a model to catch spec errors; for size and structure stats call inspect_model.",
			"page": "https://three.ws/mcp-tools/mcp/validate_model"
		},
		{
			"name": "inspect_model",
			"server": "mcp",
			"title": "Inspect glTF/GLB model",
			"category": "assets",
			"safety": "read",
			"price": 0.01,
			"whenToUse": "Use this to learn what a model contains; for ways to make it smaller call optimize_model, and for spec errors call validate_model.",
			"page": "https://three.ws/mcp-tools/mcp/inspect_model"
		},
		{
			"name": "optimize_model",
			"server": "mcp",
			"title": "Suggest optimizations for a glTF/GLB model",
			"category": "assets",
			"safety": "read",
			"price": 0.05,
			"whenToUse": "Use this when a model is too heavy to load quickly on the web or on mobile; for raw counts without advice call inspect_model.",
			"page": "https://three.ws/mcp-tools/mcp/optimize_model"
		},
		{
			"name": "diff_models",
			"server": "mcp",
			"title": "Diff two glTF/GLB models",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after optimizing, rigging, or re-exporting a model to confirm the new version is still safe wherever the old one was used.",
			"page": "https://three.ws/mcp-tools/mcp/diff_models"
		},
		{
			"name": "print_analyze",
			"server": "mcp",
			"title": "Check whether a 3D model can be printed",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before print_quote to check whether a model can be printed at all and how small it can go in each material.",
			"page": "https://three.ws/mcp-tools/mcp/print_analyze"
		},
		{
			"name": "print_quote",
			"server": "mcp",
			"title": "Price a real 3D print and get a signed quote",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after print_analyze says the model is printable, when the user wants to know what a physical copy would cost.",
			"page": "https://three.ws/mcp-tools/mcp/print_quote"
		},
		{
			"name": "list_animations",
			"server": "mcp",
			"title": "List animation presets",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to discover valid `animation` values for apply_animation.",
			"page": "https://three.ws/mcp-tools/mcp/list_animations"
		},
		{
			"name": "animation_signature",
			"server": "mcp",
			"title": "Measure what an animation clip actually does",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to pick clips by what they do rather than by name.",
			"page": "https://three.ws/mcp-tools/mcp/animation_signature"
		},
		{
			"name": "find_similar_animations",
			"server": "mcp",
			"title": "Find clips with similar measured motion",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it for \"more like this\": alternatives when a clip does not fit a slot, or variety without changing the mood.",
			"page": "https://three.ws/mcp-tools/mcp/find_similar_animations"
		},
		{
			"name": "apply_animation",
			"server": "mcp",
			"title": "Apply an animation preset to a rigged model",
			"category": "assets",
			"safety": "write",
			"price": 0.02,
			"whenToUse": "Use this to put a ready-made motion from list_animations on your own rigged model; for a motion the library does not have, call text_to_animation.",
			"page": "https://three.ws/mcp-tools/mcp/apply_animation"
		},
		{
			"name": "text_to_animation",
			"server": "mcp",
			"title": "Generate an animation from a text prompt and retarget it onto a model",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when no preset in list_animations fits the motion you want; when one does, apply_animation is faster and repeatable.",
			"page": "https://three.ws/mcp-tools/mcp/text_to_animation"
		},
		{
			"name": "list_sign_vocabulary",
			"server": "mcp",
			"title": "List the ASL vocabulary",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to know in advance what a phrase will sign versus spell.",
			"page": "https://three.ws/mcp-tools/mcp/list_sign_vocabulary"
		},
		{
			"name": "sign_text",
			"server": "mcp",
			"title": "Sign text in ASL",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to make an avatar sign a phrase; to check beforehand which words will be signed rather than spelled, call list_sign_vocabulary.",
			"page": "https://three.ws/mcp-tools/mcp/sign_text"
		},
		{
			"name": "solana_agent_reputation",
			"server": "mcp",
			"title": "Get Solana agent reputation",
			"category": "agents",
			"safety": "read",
			"price": 0.001,
			"whenToUse": "Use this for a quick trust read on a Solana agent; for the individual records behind it call solana_agent_attestations, and for identity plus reputation in one call use solana_agent_passport.",
			"page": "https://three.ws/mcp-tools/mcp/solana_agent_reputation"
		},
		{
			"name": "solana_agent_attestations",
			"server": "mcp",
			"title": "List Solana agent attestations",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit the individual feedback, validation, and dispute records behind a Solana agent reputation score; for the computed summary call solana_agent_reputation.",
			"page": "https://three.ws/mcp-tools/mcp/solana_agent_attestations"
		},
		{
			"name": "solana_agent_passport",
			"server": "mcp",
			"title": "Get Solana agent passport",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when one tool call should answer \"who is this agent and can I trust them?\".",
			"page": "https://three.ws/mcp-tools/mcp/solana_agent_passport"
		},
		{
			"name": "pumpfun_recent_claims",
			"server": "mcp",
			"title": "Recent pump.fun claims",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use to answer 'what's happening on pump.fun right now?'.",
			"page": "https://three.ws/mcp-tools/mcp/pumpfun_recent_claims"
		},
		{
			"name": "pumpfun_token_intel",
			"server": "mcp",
			"title": "Pump.fun token intel",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before buying or discussing one pump.fun token; to vet the wallet that launched it call pumpfun_creator_intel.",
			"page": "https://three.ws/mcp-tools/mcp/pumpfun_token_intel"
		},
		{
			"name": "pumpfun_creator_intel",
			"server": "mcp",
			"title": "Pump.fun creator intel",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to judge whether a launcher has a track record of real launches before trusting a new coin from that wallet.",
			"page": "https://three.ws/mcp-tools/mcp/pumpfun_creator_intel"
		},
		{
			"name": "pumpfun_recent_graduations",
			"server": "mcp",
			"title": "Recent pump.fun graduations",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see which pump.fun coins just left the bonding curve; for a deep read on one of them call pumpfun_token_intel.",
			"page": "https://three.ws/mcp-tools/mcp/pumpfun_recent_graduations"
		},
		{
			"name": "pumpfun_prepare_launch",
			"server": "mcp",
			"title": "Prepare a pump.fun launch for a human to sign",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use after the human has agreed on a name, ticker, description and image for their agent's coin.",
			"page": "https://three.ws/mcp-tools/mcp/pumpfun_prepare_launch"
		},
		{
			"name": "create_agent",
			"server": "mcp",
			"title": "Create an agent",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a new agent; call list_my_agents first if they may already have one that fits.",
			"page": "https://three.ws/mcp-tools/mcp/create_agent"
		},
		{
			"name": "call_agent",
			"server": "mcp",
			"title": "Call agent",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to delegate specialized tasks.",
			"page": "https://three.ws/mcp-tools/mcp/call_agent"
		},
		{
			"name": "register_agent",
			"server": "mcp",
			"title": "Register an agent on-chain",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after create_agent when the agent needs a verifiable on-chain identity.",
			"page": "https://three.ws/mcp-tools/mcp/register_agent"
		},
		{
			"name": "attach_avatar_to_agent",
			"server": "mcp",
			"title": "Give an agent a body",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after saving a rigged avatar, to make it the permanent body of one of your agents.",
			"page": "https://three.ws/mcp-tools/mcp/attach_avatar_to_agent"
		},
		{
			"name": "identity_check",
			"server": "mcp",
			"title": "Screen an agent identity for impersonation",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before creating or publishing an agent to catch a name or description that copies an existing one.",
			"page": "https://three.ws/mcp-tools/mcp/identity_check"
		},
		{
			"name": "list_my_agents",
			"server": "mcp",
			"title": "List my agents",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first to get the agent ids that recall, list_custom_skills, attach_avatar_to_agent and call_agent need.",
			"page": "https://three.ws/mcp-tools/mcp/list_my_agents"
		},
		{
			"name": "list_available_skills",
			"server": "mcp",
			"title": "Browse community skills",
			"category": "skills",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find a ready-made skill before writing one from scratch with create_custom_skill.",
			"page": "https://three.ws/mcp-tools/mcp/list_available_skills"
		},
		{
			"name": "import_community_skill",
			"server": "mcp",
			"title": "Import a community skill onto an agent",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after list_available_skills when a registry skill fits; to write your own instead call create_custom_skill.",
			"page": "https://three.ws/mcp-tools/mcp/import_community_skill"
		},
		{
			"name": "list_custom_skills",
			"server": "mcp",
			"title": "List an agent's custom skills",
			"category": "skills",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see what an agent already follows, and whether it all fits the budget, before adding or editing a skill.",
			"page": "https://three.ws/mcp-tools/mcp/list_custom_skills"
		},
		{
			"name": "get_custom_skill",
			"server": "mcp",
			"title": "Get one custom skill",
			"category": "skills",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before delete_custom_skill and show the user the skill, or before update_custom_skill to see the text you are changing.",
			"page": "https://three.ws/mcp-tools/mcp/get_custom_skill"
		},
		{
			"name": "create_custom_skill",
			"server": "mcp",
			"title": "Write a custom skill for an agent",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when no registry skill fits (check list_available_skills) and the agent needs standing instructions of your own.",
			"page": "https://three.ws/mcp-tools/mcp/create_custom_skill"
		},
		{
			"name": "update_custom_skill",
			"server": "mcp",
			"title": "Edit or toggle a custom skill",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to change a skill in place, including switching it off without deleting it.",
			"page": "https://three.ws/mcp-tools/mcp/update_custom_skill"
		},
		{
			"name": "delete_custom_skill",
			"server": "mcp",
			"title": "Delete a custom skill",
			"category": "skills",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the user explicitly wants the skill gone for good.",
			"page": "https://three.ws/mcp-tools/mcp/delete_custom_skill"
		},
		{
			"name": "list_skill_candidates",
			"server": "mcp",
			"title": "List suggested skills",
			"category": "skills",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want to see which skills the agent has proposed for itself and what state each draft is in.",
			"page": "https://three.ws/mcp-tools/mcp/list_skill_candidates"
		},
		{
			"name": "browse_external_skills",
			"server": "mcp",
			"title": "Browse external skill registries",
			"category": "skills",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the owner wants a ready-made skill for an agent instead of writing one.",
			"page": "https://three.ws/mcp-tools/mcp/browse_external_skills"
		},
		{
			"name": "scan_external_skill",
			"server": "mcp",
			"title": "Scan an external skill for install",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this first for any skill picked from browse_external_skills; nothing can be installed without its request_id.",
			"page": "https://three.ws/mcp-tools/mcp/scan_external_skill"
		},
		{
			"name": "install_external_skill",
			"server": "mcp",
			"title": "Install a scanned external skill",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this once the owner has approved the scanned request, within its 24 hours.",
			"page": "https://three.ws/mcp-tools/mcp/install_external_skill"
		},
		{
			"name": "external_skill_update_diff",
			"server": "mcp",
			"title": "Check an imported skill for upstream changes",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner asks whether an imported skill has upstream updates.",
			"page": "https://three.ws/mcp-tools/mcp/external_skill_update_diff"
		},
		{
			"name": "skill_fork",
			"server": "mcp",
			"title": "Fork a skill",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants to change a skill they did not write, or keep their own copy of one.",
			"page": "https://three.ws/mcp-tools/mcp/skill_fork"
		},
		{
			"name": "skill_publish",
			"server": "mcp",
			"title": "Publish a skill to the three.ws registry",
			"category": "skills",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants to share a skill they wrote or changed with everyone on three.ws.",
			"page": "https://three.ws/mcp-tools/mcp/skill_publish"
		},
		{
			"name": "remember",
			"server": "mcp",
			"title": "Remember",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use for durable facts: who the user is (type=user), guidance/corrections (feedback), ongoing work (project), or external pointers (reference).",
			"page": "https://three.ws/mcp-tools/mcp/remember"
		},
		{
			"name": "recall",
			"server": "mcp",
			"title": "Recall",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before answering when an agent should draw on what it already knows about the user or the work; to save a new fact call remember.",
			"page": "https://three.ws/mcp-tools/mcp/recall"
		},
		{
			"name": "forget",
			"server": "mcp",
			"title": "Forget",
			"category": "agents",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when a stored memory is wrong or outdated, or the user asks the agent to forget it; find the id with recall.",
			"page": "https://three.ws/mcp-tools/mcp/forget"
		},
		{
			"name": "oracle_top_plays",
			"server": "mcp",
			"title": "Oracle top conviction plays",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to decide which coins to buy before they move.",
			"page": "https://three.ws/mcp-tools/mcp/oracle_top_plays"
		},
		{
			"name": "oracle_coin",
			"server": "mcp",
			"title": "Oracle verdict for one coin",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already have a specific mint in mind; for the ranked board of current plays call oracle_top_plays.",
			"page": "https://three.ws/mcp-tools/mcp/oracle_coin"
		},
		{
			"name": "oracle_arm_watch",
			"server": "mcp",
			"title": "Arm agent Oracle watch",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants the agent to buy high-conviction Oracle picks on its own; check the setup and results afterwards with oracle_watch_status.",
			"page": "https://three.ws/mcp-tools/mcp/oracle_arm_watch"
		},
		{
			"name": "oracle_watch_status",
			"server": "mcp",
			"title": "Oracle watch status + track record",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to verify the agent is armed correctly and to review its performance before scaling up.",
			"page": "https://three.ws/mcp-tools/mcp/oracle_watch_status"
		},
		{
			"name": "trader_leaderboard",
			"server": "mcp",
			"title": "Top pump.fun traders",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find leaders worth copying, then call trader_profile for full details before you copy one.",
			"page": "https://three.ws/mcp-tools/mcp/trader_leaderboard"
		},
		{
			"name": "trader_profile",
			"server": "mcp",
			"title": "Full track record for one agent",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to vet an agent before calling copy_subscribe.",
			"page": "https://three.ws/mcp-tools/mcp/trader_profile"
		},
		{
			"name": "trade_receipt",
			"server": "mcp",
			"title": "Why an agent took one trade",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to understand what a leader actually trades on before copying it, passing a trade_id from trader_profile's recent_trades.",
			"page": "https://three.ws/mcp-tools/mcp/trade_receipt"
		},
		{
			"name": "sentiment_scout",
			"server": "mcp",
			"title": "Sourced momentum candidates (Sentiment Scout)",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find which pump.fun coins are gaining momentum right now and why; for a full conviction verdict on one coin call oracle_coin.",
			"page": "https://three.ws/mcp-tools/mcp/sentiment_scout"
		},
		{
			"name": "copy_subscribe",
			"server": "mcp",
			"title": "Subscribe to copy a trader",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after vetting a leader with trader_profile, when the user wants to mirror that leader's trades.",
			"page": "https://three.ws/mcp-tools/mcp/copy_subscribe"
		},
		{
			"name": "copy_status",
			"server": "mcp",
			"title": "My copy subscriptions",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check that copy-trading is set up correctly and to see which subscriptions are generating intents.",
			"page": "https://three.ws/mcp-tools/mcp/copy_status"
		},
		{
			"name": "mint_3d_asset",
			"server": "mcp",
			"title": "Mint a 3D asset as a Solana NFT",
			"category": "assets",
			"safety": "write",
			"price": 0.25,
			"whenToUse": "Use this when the user wants a model to exist as an ownable, tradable on-chain asset; to read one back call get_3d_asset_onchain.",
			"page": "https://three.ws/mcp-tools/mcp/mint_3d_asset"
		},
		{
			"name": "get_3d_asset_onchain",
			"server": "mcp",
			"title": "Resolve a 3D NFT to its live asset + provenance",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check who holds a 3D NFT and what its provenance and royalty terms are.",
			"page": "https://three.ws/mcp-tools/mcp/get_3d_asset_onchain"
		},
		{
			"name": "crypto_data",
			"server": "mcp",
			"title": "Crypto Data API",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for raw data from one named provider endpoint; for a merged one-call view of a Solana token call token_snapshot.",
			"page": "https://three.ws/mcp-tools/mcp/crypto_data"
		},
		{
			"name": "token_snapshot",
			"server": "mcp",
			"title": "Crypto token snapshot",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for a quick general market read on one Solana token (price, liquidity, supply) without choosing providers yourself.",
			"page": "https://three.ws/mcp-tools/mcp/token_snapshot"
		},
		{
			"name": "generate_garment",
			"server": "mcp",
			"title": "Generate a wearable garment from a text prompt",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when nothing in list_garment_catalog fits and the user wants a new wearable item made.",
			"page": "https://three.ws/mcp-tools/mcp/generate_garment"
		},
		{
			"name": "garment_status",
			"server": "mcp",
			"title": "Check a garment generation job",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after generate_garment to follow the job until it finishes.",
			"page": "https://three.ws/mcp-tools/mcp/garment_status"
		},
		{
			"name": "list_garment_catalog",
			"server": "mcp",
			"title": "List the wardrobe garment catalog",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to pick an existing garment before generating a new one with generate_garment.",
			"page": "https://three.ws/mcp-tools/mcp/list_garment_catalog"
		},
		{
			"name": "list_feedback",
			"server": "mcp",
			"title": "List feedback",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to decide which visitor-reported bug to fix next.",
			"page": "https://three.ws/mcp-tools/mcp/list_feedback"
		},
		{
			"name": "get_feedback_repro",
			"server": "mcp",
			"title": "Compile a feedback report into a failing test",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to reproduce the bug before changing anything, and to prove the change worked.",
			"page": "https://three.ws/mcp-tools/mcp/get_feedback_repro"
		},
		{
			"name": "home_status",
			"server": "mcp",
			"title": "Home status",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to answer \"is the house locked?\", \"are the lights on downstairs?\", or before proposing an action, so you act on what the house is rather than what you assume.",
			"page": "https://three.ws/mcp-tools/mcp/home_status"
		},
		{
			"name": "home_list_macros",
			"server": "mcp",
			"title": "List home scenes and scripts",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before home_activate so you propose something that exists.",
			"page": "https://three.ws/mcp-tools/mcp/home_list_macros"
		},
		{
			"name": "home_grants",
			"server": "mcp",
			"title": "Standing home permissions",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before proposing something that would otherwise need a confirmation: if the entity is already granted, there is no prompt to warn the user about.",
			"page": "https://three.ws/mcp-tools/mcp/home_grants"
		},
		{
			"name": "home_activate",
			"server": "mcp",
			"title": "Activate a home scene",
			"category": "integrations",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the user asks for a household routine in plain words; if no scene or script fits, use home_call instead.",
			"page": "https://three.ws/mcp-tools/mcp/home_activate"
		},
		{
			"name": "home_call",
			"server": "mcp",
			"title": "Call a home service",
			"category": "integrations",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when no scene fits.",
			"page": "https://three.ws/mcp-tools/mcp/home_call"
		},
		{
			"name": "read_resource",
			"server": "mcp",
			"title": "Read a three:// resource",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to read account, agent, wallet, or catalog state that has no dedicated tool, or to see what is readable when unsure.",
			"page": "https://three.ws/mcp-tools/mcp/read_resource"
		},
		{
			"name": "agent_card_search_merchants",
			"server": "mcp",
			"title": "Search card merchants",
			"category": "cards",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when the owner wants to buy a gift or prepaid card, then pick a product with agent_card_search_gift_cards.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_search_merchants"
		},
		{
			"name": "agent_card_search_gift_cards",
			"server": "mcp",
			"title": "Search gift and prepaid card products",
			"category": "cards",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after agent_card_search_merchants to choose a product and an allowed amount, then pass both to agent_card_quote.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_search_gift_cards"
		},
		{
			"name": "agent_card_quote",
			"server": "mcp",
			"title": "Quote a card purchase",
			"category": "cards",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before agent_card_create, and show the confirm table to the owner before buying.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_quote"
		},
		{
			"name": "agent_card_create",
			"server": "mcp",
			"title": "Buy a card from the agent wallet",
			"category": "cards",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after the owner said yes to the exact quote; follow the card afterwards with agent_card_status.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_create"
		},
		{
			"name": "agent_card_list",
			"server": "mcp",
			"title": "List agent cards",
			"category": "cards",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find a card id or see what the agent has bought; for one card with its full audit trail call agent_card_get.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_list"
		},
		{
			"name": "agent_card_get",
			"server": "mcp",
			"title": "Get one agent card",
			"category": "cards",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to answer who paid for, revealed, or changed a card and when; for the code or PIN itself go through agent_card_data and agent_card_reveal.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_get"
		},
		{
			"name": "agent_card_status",
			"server": "mcp",
			"title": "Refresh a card from the provider",
			"category": "cards",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a card is still processing, or to confirm it was delivered before revealing it.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_status"
		},
		{
			"name": "agent_card_balance",
			"server": "mcp",
			"title": "Card balance",
			"category": "cards",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before agent_card_withdraw, or when the owner asks how much is left on a card.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_balance"
		},
		{
			"name": "agent_card_data",
			"server": "mcp",
			"title": "Card data and reveal preview",
			"category": "cards",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this before agent_card_reveal, which needs the preview_id it returns.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_data"
		},
		{
			"name": "agent_card_reveal",
			"server": "mcp",
			"title": "Reveal a card secret once",
			"category": "cards",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the owner asks for the code to redeem the card, and at no other time.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_reveal"
		},
		{
			"name": "agent_card_cancel",
			"server": "mcp",
			"title": "Cancel a card",
			"category": "cards",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the owner no longer wants a quoted or pending card.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_cancel"
		},
		{
			"name": "agent_card_withdraw",
			"server": "mcp",
			"title": "Withdraw a prepaid balance to USDC",
			"category": "cards",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to recover unspent value from a prepaid card into the agent wallet.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_withdraw"
		},
		{
			"name": "agent_card_connect",
			"server": "mcp",
			"title": "Card provider verification status",
			"category": "cards",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before the first card purchase on an account; if steps are outstanding, get the link with agent_card_connect_link.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_connect"
		},
		{
			"name": "agent_card_connect_link",
			"server": "mcp",
			"title": "Card provider verification link",
			"category": "cards",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when agent_card_connect reports identity steps still outstanding.",
			"page": "https://three.ws/mcp-tools/mcp/agent_card_connect_link"
		},
		{
			"name": "paired_markets",
			"server": "mcp",
			"title": "List paired-coin markets",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before paired_launch_quote to choose which markets a new coin should pair with.",
			"page": "https://three.ws/mcp-tools/mcp/paired_markets"
		},
		{
			"name": "paired_coins",
			"server": "mcp",
			"title": "List paired coins",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to browse launched paired coins; for one coin in full call paired_coin.",
			"page": "https://three.ws/mcp-tools/mcp/paired_coins"
		},
		{
			"name": "paired_coin",
			"server": "mcp",
			"title": "Read a paired coin",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have a coin address and need its live pools, trades, or price history.",
			"page": "https://three.ws/mcp-tools/mcp/paired_coin"
		},
		{
			"name": "paired_launch_quote",
			"server": "mcp",
			"title": "Quote a paired-coin launch",
			"category": "launch",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before paired_launch and show the result to the owner; paired_launch needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp/paired_launch_quote"
		},
		{
			"name": "paired_launch",
			"server": "mcp",
			"title": "Launch a paired coin from an agent wallet",
			"category": "launch",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after the owner approved a paired_launch_quote, to actually create the coin.",
			"page": "https://three.ws/mcp-tools/mcp/paired_launch"
		},
		{
			"name": "paired_fees",
			"server": "mcp",
			"title": "Read paired-coin creator fees",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see what a creator agent can collect before calling paired_claim_fees.",
			"page": "https://three.ws/mcp-tools/mcp/paired_fees"
		},
		{
			"name": "paired_claim_fees",
			"server": "mcp",
			"title": "Claim paired-coin creator fees",
			"category": "launch",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after paired_fees shows a claimable balance worth the gas.",
			"page": "https://three.ws/mcp-tools/mcp/paired_claim_fees"
		},
		{
			"name": "launch_lanes",
			"server": "mcp",
			"title": "Compare launch lanes",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when someone wants to launch a coin and has not picked a chain or venue; Solana is the default lane.",
			"page": "https://three.ws/mcp-tools/mcp/launch_lanes"
		},
		{
			"name": "uniswap_launch_quote",
			"server": "mcp",
			"title": "Quote a Uniswap-lane launch",
			"category": "launch",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before uniswap_launch and show the result to the owner; uniswap_launch needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp/uniswap_launch_quote"
		},
		{
			"name": "uniswap_launch",
			"server": "mcp",
			"title": "Launch a coin with a Uniswap pool",
			"category": "launch",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after the owner approved a uniswap_launch_quote, to actually create the coin on Base.",
			"page": "https://three.ws/mcp-tools/mcp/uniswap_launch"
		},
		{
			"name": "launch_status",
			"server": "mcp",
			"title": "Read a launch",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it after a timeout to learn whether the launch happened; a launch whose transaction landed after the request ended is settled when you read it.",
			"page": "https://three.ws/mcp-tools/mcp/launch_status"
		},
		{
			"name": "get_agent",
			"server": "mcp",
			"title": "Get one agent you own",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before delete_agent and show the user the result: its preview_id authorizes the delete.",
			"page": "https://three.ws/mcp-tools/mcp/get_agent"
		},
		{
			"name": "update_agent",
			"server": "mcp",
			"title": "Edit an agent you own",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to rename an agent or change its persona, prompt, model, skills, strategy or inference budget.",
			"page": "https://three.ws/mcp-tools/mcp/update_agent"
		},
		{
			"name": "delete_agent",
			"server": "mcp",
			"title": "Delete an agent you own",
			"category": "agents",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the owner wants an agent gone for good; to pause it instead, use stop_agent.",
			"page": "https://three.ws/mcp-tools/mcp/delete_agent"
		},
		{
			"name": "start_agent",
			"server": "mcp",
			"title": "Start an agent",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to bring a stopped agent back online after stop_agent.",
			"page": "https://three.ws/mcp-tools/mcp/start_agent"
		},
		{
			"name": "stop_agent",
			"server": "mcp",
			"title": "Stop an agent",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to pause an agent without losing anything; start_agent resumes it.",
			"page": "https://three.ws/mcp-tools/mcp/stop_agent"
		},
		{
			"name": "upload_agent_avatar",
			"server": "mcp",
			"title": "Give an agent a 3D body or a portrait",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner has a 3D model or a picture to give an agent its body or portrait.",
			"page": "https://three.ws/mcp-tools/mcp/upload_agent_avatar"
		},
		{
			"name": "create_agent_run",
			"server": "mcp",
			"title": "Give an agent a goal to pursue on its own",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants an agent to work toward a goal on its own over several steps.",
			"page": "https://three.ws/mcp-tools/mcp/create_agent_run"
		},
		{
			"name": "update_agent_run",
			"server": "mcp",
			"title": "Pause, resume, or raise the budget of a run",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to pause or resume a run in progress, or to give a run that is running out of budget more room.",
			"page": "https://three.ws/mcp-tools/mcp/update_agent_run"
		},
		{
			"name": "cancel_agent_run",
			"server": "mcp",
			"title": "Cancel a run",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a run should stop for good; to hold it and continue later, pause it with update_agent_run.",
			"page": "https://three.ws/mcp-tools/mcp/cancel_agent_run"
		},
		{
			"name": "get_agent_run_steps",
			"server": "mcp",
			"title": "Read a run step by step",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see what a run did, check its receipts, or follow a live run step by step.",
			"page": "https://three.ws/mcp-tools/mcp/get_agent_run_steps"
		},
		{
			"name": "automation_list",
			"server": "mcp",
			"title": "List automations",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to find the automation id that automation_get, automation_update, automation_delete and automation_trigger take.",
			"page": "https://three.ws/mcp-tools/mcp/automation_list"
		},
		{
			"name": "automation_get",
			"server": "mcp",
			"title": "Get one automation",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before automation_delete and show the user the result: its preview_id authorizes the delete.",
			"page": "https://three.ws/mcp-tools/mcp/automation_get"
		},
		{
			"name": "automation_create",
			"server": "mcp",
			"title": "Create an automation",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants an agent to act on its own when a price, schedule, balance, tip, launch or whale event happens.",
			"page": "https://three.ws/mcp-tools/mcp/automation_create"
		},
		{
			"name": "automation_update",
			"server": "mcp",
			"title": "Edit an automation",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to retune or switch an existing automation on or off instead of deleting and recreating it.",
			"page": "https://three.ws/mcp-tools/mcp/automation_update"
		},
		{
			"name": "automation_delete",
			"server": "mcp",
			"title": "Delete an automation",
			"category": "runs",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when an automation should be removed for good; to pause it, use automation_update with enabled: false.",
			"page": "https://three.ws/mcp-tools/mcp/automation_delete"
		},
		{
			"name": "automation_trigger",
			"server": "mcp",
			"title": "Fire an automation now",
			"category": "runs",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to test an automation, or to fire it once on demand without waiting for its trigger.",
			"page": "https://three.ws/mcp-tools/mcp/automation_trigger"
		},
		{
			"name": "agent_mail_get_address",
			"server": "mcp",
			"title": "Get the agent email address",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before quoting a send.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_get_address"
		},
		{
			"name": "agent_mail_quote",
			"server": "mcp",
			"title": "Quote a mailbox or a send",
			"category": "mail",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this first whenever the owner asks to create a mailbox, send or reply.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_quote"
		},
		{
			"name": "agent_mail_create",
			"server": "mcp",
			"title": "Create the agent mailbox",
			"category": "mail",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this once the owner approved a create quote.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_create"
		},
		{
			"name": "agent_mail_send",
			"server": "mcp",
			"title": "Send an email",
			"category": "mail",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this once the owner approved a send quote.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_send"
		},
		{
			"name": "agent_mail_reply",
			"server": "mcp",
			"title": "Reply to an email",
			"category": "mail",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this once the owner approved a reply quote.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_reply"
		},
		{
			"name": "agent_mail_list",
			"server": "mcp",
			"title": "List the agent inbox",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check the inbox or find a message id.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_list"
		},
		{
			"name": "agent_mail_read",
			"server": "mcp",
			"title": "Read one email",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to open a message from agent_mail_list or agent_mail_search.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_read"
		},
		{
			"name": "agent_mail_search",
			"server": "mcp",
			"title": "Search the agent mailbox",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the owner asks about mail from a sender or on a topic.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_search"
		},
		{
			"name": "agent_mail_delete",
			"server": "mcp",
			"title": "Delete an email",
			"category": "mail",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner asks to remove a message.",
			"page": "https://three.ws/mcp-tools/mcp/agent_mail_delete"
		},
		{
			"name": "inbox_list",
			"server": "mcp",
			"title": "List received mail",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see what mail has arrived for the agent.",
			"page": "https://three.ws/mcp-tools/mcp/inbox_list"
		},
		{
			"name": "inbox_read",
			"server": "mcp",
			"title": "Read a received email",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to open one received message from inbox_list.",
			"page": "https://three.ws/mcp-tools/mcp/inbox_read"
		},
		{
			"name": "inbox_wait_for_code",
			"server": "mcp",
			"title": "Wait for a verification code",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this after a signup or login step that should email a code, instead of polling the inbox yourself.",
			"page": "https://three.ws/mcp-tools/mcp/inbox_wait_for_code"
		},
		{
			"name": "get_whitelist",
			"server": "mcp",
			"title": "Get wallet allowlist",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before proposing or removing an address, or to check why a send was refused as not whitelisted.",
			"page": "https://three.ws/mcp-tools/mcp/get_whitelist"
		},
		{
			"name": "add_to_whitelist",
			"server": "mcp",
			"title": "Propose a wallet allowlist destination",
			"category": "wallet",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the agent needs a new payout destination and the owner must decide whether to trust it.",
			"page": "https://three.ws/mcp-tools/mcp/add_to_whitelist"
		},
		{
			"name": "remove_from_whitelist",
			"server": "mcp",
			"title": "Remove a wallet allowlist destination",
			"category": "wallet",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when an address is no longer trusted or a proposal was a mistake; take the entry id from get_whitelist.",
			"page": "https://three.ws/mcp-tools/mcp/remove_from_whitelist"
		},
		{
			"name": "domain_search",
			"server": "mcp",
			"title": "Search web domains",
			"category": "domains",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when the owner wants a domain but has not settled on an exact name.",
			"page": "https://three.ws/mcp-tools/mcp/domain_search"
		},
		{
			"name": "domain_check",
			"server": "mcp",
			"title": "Check one web domain",
			"category": "domains",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the owner has one exact name in mind, before domain_register_quote.",
			"page": "https://three.ws/mcp-tools/mcp/domain_check"
		},
		{
			"name": "domain_pricing",
			"server": "mcp",
			"title": "List domain TLD pricing",
			"category": "domains",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to compare extension prices or find TLDs under a budget without spending live registrar requests.",
			"page": "https://three.ws/mcp-tools/mcp/domain_pricing"
		},
		{
			"name": "domain_register_quote",
			"server": "mcp",
			"title": "Quote a domain registration",
			"category": "domains",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this before domain_register, once the owner has picked a name.",
			"page": "https://three.ws/mcp-tools/mcp/domain_register_quote"
		},
		{
			"name": "domain_register",
			"server": "mcp",
			"title": "Register a domain (spends credits)",
			"category": "domains",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this once the owner has approved a fresh domain_register_quote.",
			"page": "https://three.ws/mcp-tools/mcp/domain_register"
		},
		{
			"name": "domain_status",
			"server": "mcp",
			"title": "Poll a domain registration",
			"category": "domains",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after domain_register to follow a registration until it is active or failed.",
			"page": "https://three.ws/mcp-tools/mcp/domain_status"
		},
		{
			"name": "domain_connect",
			"server": "mcp",
			"title": "Connect a domain to an agent page",
			"category": "domains",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after a registration turns active to put an agent's page on that domain.",
			"page": "https://three.ws/mcp-tools/mcp/domain_connect"
		},
		{
			"name": "domain_connect_status",
			"server": "mcp",
			"title": "Check a connected domain",
			"category": "domains",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after domain_connect to check when the domain is serving over HTTPS.",
			"page": "https://three.ws/mcp-tools/mcp/domain_connect_status"
		},
		{
			"name": "robinhood_chain_stats",
			"server": "mcp",
			"title": "Robinhood Chain stats",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check the chain is up or to get a block number.",
			"page": "https://three.ws/mcp-tools/mcp/robinhood_chain_stats"
		},
		{
			"name": "robinhood_token_prices",
			"server": "mcp",
			"title": "Robinhood Chain token prices",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you need current USD prices for Stock Tokens or other tokens on Robinhood Chain.",
			"page": "https://three.ws/mcp-tools/mcp/robinhood_token_prices"
		},
		{
			"name": "robinhood_recent_launches",
			"server": "mcp",
			"title": "Recent Robinhood Chain launches",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see which coins just launched on Robinhood Chain launchpads.",
			"page": "https://three.ws/mcp-tools/mcp/robinhood_recent_launches"
		},
		{
			"name": "robinhood_wallet_holdings",
			"server": "mcp",
			"title": "Robinhood Chain wallet holdings",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you need a priced balance sheet of everything an address holds on Robinhood Chain.",
			"page": "https://three.ws/mcp-tools/mcp/robinhood_wallet_holdings"
		},
		{
			"name": "token_due_diligence",
			"server": "mcp",
			"title": "Token due diligence",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you are about to size or approve a buy and need to know whether insiders, snipers or bundles control the supply.",
			"page": "https://three.ws/mcp-tools/mcp/token_due_diligence"
		},
		{
			"name": "search_docs",
			"server": "mcp",
			"title": "Search the three.ws documentation",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before guessing at an API or a flow; to browse ready-made 3D assets call search_catalog instead.",
			"page": "https://three.ws/mcp-tools/mcp/search_docs"
		},
		{
			"name": "expand",
			"server": "mcp",
			"title": "Expand a summarized result",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when list_my_agents, recall or crypto_data returns a summary with a handle and a count: pass that handle here with an offset to read the next page, or with fields to receive only those keys of each row (dot paths allowed, for example [\"id\",\"name\"]).",
			"page": "https://three.ws/mcp-tools/mcp/expand"
		},
		{
			"name": "web_search",
			"server": "mcp",
			"title": "Search the web",
			"category": "gateway",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you need current facts or sources.",
			"page": "https://three.ws/mcp-tools/mcp/web_search"
		},
		{
			"name": "web_fetch",
			"server": "mcp",
			"title": "Fetch a web page",
			"category": "gateway",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to read one known URL as text.",
			"page": "https://three.ws/mcp-tools/mcp/web_fetch"
		},
		{
			"name": "parse_document",
			"server": "mcp",
			"title": "Parse a document",
			"category": "gateway",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the content is a document file rather than a web page.",
			"page": "https://three.ws/mcp-tools/mcp/parse_document"
		},
		{
			"name": "tts",
			"server": "mcp",
			"title": "Text to speech",
			"category": "gateway",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a reply must be spoken or an audio file is needed.",
			"page": "https://three.ws/mcp-tools/mcp/tts"
		},
		{
			"name": "transcribe",
			"server": "mcp",
			"title": "Speech to text",
			"category": "gateway",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you have recorded speech and need its text.",
			"page": "https://three.ws/mcp-tools/mcp/transcribe"
		},
		{
			"name": "image_generate",
			"server": "mcp",
			"title": "Generate an image",
			"category": "gateway",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a picture is needed and none exists yet.",
			"page": "https://three.ws/mcp-tools/mcp/image_generate"
		},
		{
			"name": "getting_started",
			"server": "mcp-agent",
			"title": "Getting Started (free)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to orient.",
			"page": "https://three.ws/mcp-tools/mcp-agent/getting_started"
		},
		{
			"name": "wallet_status",
			"server": "mcp-agent",
			"title": "Check the agent's wallet",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before pay_and_call to confirm there's balance and headroom.",
			"page": "https://three.ws/mcp-tools/mcp-agent/wallet_status"
		},
		{
			"name": "find_services",
			"server": "mcp-agent",
			"title": "Find paid services the agent can call",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a task needs a paid API or tool you do not already have; to use a match, price it with pay_quote, show the user the result, then pay with pay_and_call.",
			"page": "https://three.ws/mcp-tools/mcp-agent/find_services"
		},
		{
			"name": "pay_quote",
			"server": "mcp-agent",
			"title": "Price an x402 payment without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before every pay_and_call: show the table to the user; pay_and_call needs the quote_id this returns, for the same resource_url, and confirm_payment: true after a clear yes.",
			"page": "https://three.ws/mcp-tools/mcp-agent/pay_quote"
		},
		{
			"name": "pay_and_call",
			"server": "mcp-agent",
			"title": "Pay an x402 service and return its result",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after pay_quote for the same resource_url, and only once the user approves its table.",
			"page": "https://three.ws/mcp-tools/mcp-agent/pay_and_call"
		},
		{
			"name": "provision_wallet",
			"server": "mcp-agent",
			"title": "Create the agent's wallet",
			"category": "wallet",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before monetize_endpoint, or whenever an agent needs an address to receive USDC.",
			"page": "https://three.ws/mcp-tools/mcp-agent/provision_wallet"
		},
		{
			"name": "monetize_endpoint",
			"server": "mcp-agent",
			"title": "Publish a paid endpoint to earn USDC",
			"category": "x402",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when your agent already serves an API and you want other agents to pay per call for it.",
			"page": "https://three.ws/mcp-tools/mcp-agent/monetize_endpoint"
		},
		{
			"name": "read_resource",
			"server": "mcp-agent",
			"title": "Read a three:// resource",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for a one-call snapshot of account, wallet, or launch state when no dedicated tool covers it.",
			"page": "https://three.ws/mcp-tools/mcp-agent/read_resource"
		},
		{
			"name": "get_linked_accounts",
			"server": "mcp-agent",
			"title": "List everything linked to the account",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call it before set_external_wallet to see what a change would replace.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_linked_accounts"
		},
		{
			"name": "set_external_wallet",
			"server": "mcp-agent",
			"title": "Attach a wallet you control as a payout wallet",
			"category": "wallet",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants an agent's earnings paid out to a wallet they control.",
			"page": "https://three.ws/mcp-tools/mcp-agent/set_external_wallet"
		},
		{
			"name": "browse_marketplace",
			"server": "mcp-agent",
			"title": "Browse agents for sale",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to shop for an agent to buy; open one with get_listing for its bids and history before bidding.",
			"page": "https://three.ws/mcp-tools/mcp-agent/browse_marketplace"
		},
		{
			"name": "browse_public_agents",
			"server": "mcp-agent",
			"title": "Browse public agents",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to search every published agent by name, not only those for sale; for the for-sale list with prices and time left call browse_marketplace.",
			"page": "https://three.ws/mcp-tools/mcp-agent/browse_public_agents"
		},
		{
			"name": "get_listing",
			"server": "mcp-agent",
			"title": "Get an agent listing",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before place_bid or buy_now to check what transfers, the live balance, and the bids already in.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_listing"
		},
		{
			"name": "get_marketplace_history",
			"server": "mcp-agent",
			"title": "Get marketplace history",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit what happened to an agent or the market over time; for the current state of one listing call get_listing.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_marketplace_history"
		},
		{
			"name": "preview_marketplace_action",
			"server": "mcp-agent",
			"title": "Preview a marketplace action",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before every money-moving marketplace action: show the table to the user, wait for a clear yes, then call the action tool with its confirm flag and this preview_id (valid ten minutes, one use).",
			"page": "https://three.ws/mcp-tools/mcp-agent/preview_marketplace_action"
		},
		{
			"name": "create_marketplace_listing",
			"server": "mcp-agent",
			"title": "List an agent for sale",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to put an agent up for sale, after the user approves a preview_marketplace_action (action create_listing) table; pass its preview_id with confirm_listing: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/create_marketplace_listing"
		},
		{
			"name": "delist_marketplace_listing",
			"server": "mcp-agent",
			"title": "Delist an agent",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to end a sale early, after the user approves a preview_marketplace_action (action delist) table; pass its preview_id with confirm_delist: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/delist_marketplace_listing"
		},
		{
			"name": "place_bid",
			"server": "mcp-agent",
			"title": "Bid on an agent",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to make an offer instead of paying the buy-now price, after the user approves a preview_marketplace_action (action place_bid) table; pass its preview_id with confirm_bid: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/place_bid"
		},
		{
			"name": "buy_now",
			"server": "mcp-agent",
			"title": "Buy an agent now",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to buy at the listed price without waiting on the seller, after the user approves a preview_marketplace_action (action buy_now) table; pass its preview_id with confirm_payment: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/buy_now"
		},
		{
			"name": "get_my_bids",
			"server": "mcp-agent",
			"title": "My bids",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check whether your offers are still open, won, or refunded.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_my_bids"
		},
		{
			"name": "get_received_bids",
			"server": "mcp-agent",
			"title": "Bids on my listings",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to review offers before accept_marketplace_bid or reject_marketplace_bid.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_received_bids"
		},
		{
			"name": "accept_marketplace_bid",
			"server": "mcp-agent",
			"title": "Accept a bid",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to sell to one specific bidder, after the user approves a preview_marketplace_action (action accept_bid) table; pass its preview_id with confirm_accept: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/accept_marketplace_bid"
		},
		{
			"name": "reject_marketplace_bid",
			"server": "mcp-agent",
			"title": "Reject a bid",
			"category": "marketplace",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to decline one offer without ending the sale; to end the sale and refund every bid call delist_marketplace_listing.",
			"page": "https://three.ws/mcp-tools/mcp-agent/reject_marketplace_bid"
		},
		{
			"name": "withdraw_marketplace_bid",
			"server": "mcp-agent",
			"title": "Withdraw my bid",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to take back an offer you no longer want, after the user approves a preview_marketplace_action (action withdraw_bid) table; pass its preview_id with confirm_withdraw: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/withdraw_marketplace_bid"
		},
		{
			"name": "get_agent_transfer",
			"server": "mcp-agent",
			"title": "Settlement progress",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after a buy or an accepted bid to confirm the agent fully changed hands; if a step failed, call resume_agent_transfer.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_agent_transfer"
		},
		{
			"name": "resume_agent_transfer",
			"server": "mcp-agent",
			"title": "Resume a stalled sale",
			"category": "marketplace",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when get_agent_transfer shows a step stopped on an error and you do not want to wait for the cron.",
			"page": "https://three.ws/mcp-tools/mcp-agent/resume_agent_transfer"
		},
		{
			"name": "predictions_events",
			"server": "mcp-agent",
			"title": "Browse prediction markets",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find an event and its id; open one with predictions_event for market ids and live prices.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_events"
		},
		{
			"name": "predictions_event",
			"server": "mcp-agent",
			"title": "Research one prediction event",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to get the market ids predictions_open_preview and predictions_watch need, and to read the resolution rules before betting.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_event"
		},
		{
			"name": "predictions_positions",
			"server": "mcp-agent",
			"title": "The agent's prediction positions",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check PnL and find positions to sell with predictions_close_preview or claim with predictions_redeem_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_positions"
		},
		{
			"name": "predictions_open_preview",
			"server": "mcp-agent",
			"title": "Preview a prediction order",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this before every predictions_open and show the user the result.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_open_preview"
		},
		{
			"name": "predictions_open",
			"server": "mcp-agent",
			"title": "Place a prediction order",
			"category": "predictions",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after the user approves a predictions_open_preview; pass its fresh preview_id with confirm_trade: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_open"
		},
		{
			"name": "predictions_close_preview",
			"server": "mcp-agent",
			"title": "Preview closing a prediction position",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this before every predictions_close and show the user the expected proceeds.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_close_preview"
		},
		{
			"name": "predictions_close",
			"server": "mcp-agent",
			"title": "Close a prediction position",
			"category": "predictions",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to exit a position before it resolves, after the user approves that preview; pass its fresh preview_id with confirm_trade: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_close"
		},
		{
			"name": "predictions_redeem_preview",
			"server": "mcp-agent",
			"title": "Preview redeeming a resolved position",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this once an event has resolved, to see what a position can claim before predictions_redeem.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_redeem_preview"
		},
		{
			"name": "predictions_redeem",
			"server": "mcp-agent",
			"title": "Redeem a resolved prediction position",
			"category": "predictions",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after the event resolves in your favor and the user approves a predictions_redeem_preview; pass its fresh preview_id with confirm_trade: true.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_redeem"
		},
		{
			"name": "predictions_watch",
			"server": "mcp-agent",
			"title": "Watch a prediction market",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to wait for a price level instead of polling predictions_event.",
			"page": "https://three.ws/mcp-tools/mcp-agent/predictions_watch"
		},
		{
			"name": "perps_markets",
			"server": "mcp-agent",
			"title": "List perpetual futures markets",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to find a market symbol and its leverage limit before previewing an order.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_markets"
		},
		{
			"name": "perps_market_data",
			"server": "mcp-agent",
			"title": "Read one perps market",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to judge depth and funding before previewing an order.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_market_data"
		},
		{
			"name": "perps_account",
			"server": "mcp-agent",
			"title": "Read an agent perps account",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check equity, margin and liquidation risk before sizing a new order or withdrawing collateral.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_account"
		},
		{
			"name": "perps_positions",
			"server": "mcp-agent",
			"title": "List perps positions and orders",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find the id of an order or trigger to cancel, or to review recent fills.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_positions"
		},
		{
			"name": "perps_order_preview",
			"server": "mcp-agent",
			"title": "Preview a perps order",
			"category": "perps",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before perps_order_execute to see the exact fill, fees and liquidation price.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_order_preview"
		},
		{
			"name": "perps_action_preview",
			"server": "mcp-agent",
			"title": "Preview a perps funds or kill-switch action",
			"category": "perps",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this first for any deposit, withdrawal, cancel or flatten, and show the owner the result.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_action_preview"
		},
		{
			"name": "perps_order_execute",
			"server": "mcp-agent",
			"title": "Place a perps order",
			"category": "perps",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the owner approved a perps_order_preview, within its two-minute window.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_order_execute"
		},
		{
			"name": "perps_collateral_deposit",
			"server": "mcp-agent",
			"title": "Deposit perps collateral",
			"category": "perps",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the perps account needs more margin to open or hold positions.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_collateral_deposit"
		},
		{
			"name": "perps_collateral_withdraw",
			"server": "mcp-agent",
			"title": "Withdraw perps collateral",
			"category": "perps",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to bring idle margin back to the agent wallet.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_collateral_withdraw"
		},
		{
			"name": "perps_order_cancel",
			"server": "mcp-agent",
			"title": "Cancel a perps order or trigger",
			"category": "perps",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to pull one resting order or trigger listed by perps_positions; to close everything at once, use perps_flatten.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_order_cancel"
		},
		{
			"name": "perps_flatten",
			"server": "mcp-agent",
			"title": "Perps kill switch: flatten everything",
			"category": "perps",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the owner wants all perps risk off immediately.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_flatten"
		},
		{
			"name": "perps_limits",
			"server": "mcp-agent",
			"title": "Tighten perps limits and set alerts",
			"category": "perps",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants to reduce an agent's perps risk or be alerted before a position gets into trouble.",
			"page": "https://three.ws/mcp-tools/mcp-agent/perps_limits"
		},
		{
			"name": "lend_markets",
			"server": "mcp-agent",
			"title": "List lending markets",
			"category": "lending",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to pick a token and compare yields before lend_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/lend_markets"
		},
		{
			"name": "lend_positions",
			"server": "mcp-agent",
			"title": "Read lending positions",
			"category": "lending",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the owner asks what the agent earns or holds in lending.",
			"page": "https://three.ws/mcp-tools/mcp-agent/lend_positions"
		},
		{
			"name": "lend_preview",
			"server": "mcp-agent",
			"title": "Preview a lending deposit or withdraw",
			"category": "lending",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before lend_deposit or lend_withdraw to show the owner the exact terms.",
			"page": "https://three.ws/mcp-tools/mcp-agent/lend_preview"
		},
		{
			"name": "lend_deposit",
			"server": "mcp-agent",
			"title": "Supply to lending",
			"category": "lending",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to put idle agent-wallet funds to work earning interest.",
			"page": "https://three.ws/mcp-tools/mcp-agent/lend_deposit"
		},
		{
			"name": "lend_withdraw",
			"server": "mcp-agent",
			"title": "Withdraw from lending",
			"category": "lending",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to pull funds back out of lending into the agent wallet.",
			"page": "https://three.ws/mcp-tools/mcp-agent/lend_withdraw"
		},
		{
			"name": "papertrade_markets",
			"server": "mcp-agent",
			"title": "List Papertrade markets",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to see what can be traded.",
			"page": "https://three.ws/mcp-tools/mcp-agent/papertrade_markets"
		},
		{
			"name": "papertrade_quote",
			"server": "mcp-agent",
			"title": "Quote a Papertrade position",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to size and price a Papertrade open before opening it.",
			"page": "https://three.ws/mcp-tools/mcp-agent/papertrade_quote"
		},
		{
			"name": "papertrade_account",
			"server": "mcp-agent",
			"title": "Read a Papertrade wallet",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check the Papertrade balance and open positions.",
			"page": "https://three.ws/mcp-tools/mcp-agent/papertrade_account"
		},
		{
			"name": "papertrade_protocol",
			"server": "mcp-agent",
			"title": "Check Papertrade protocol health",
			"category": "perps",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check protocol health before sizing a Papertrade trade.",
			"page": "https://three.ws/mcp-tools/mcp-agent/papertrade_protocol"
		},
		{
			"name": "token_search",
			"server": "mcp-agent",
			"title": "Search Solana tokens",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first when the user names a token by symbol or name, so every later tool gets the right mint.",
			"page": "https://three.ws/mcp-tools/mcp-agent/token_search"
		},
		{
			"name": "get_price",
			"server": "mcp-agent",
			"title": "Live token price",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for a quick price check on one token.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_price"
		},
		{
			"name": "get_indicators",
			"server": "mcp-agent",
			"title": "Technical indicators",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks for technical analysis or a trend read on a token.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_indicators"
		},
		{
			"name": "get_market_signals",
			"server": "mcp-agent",
			"title": "Market signals",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to judge whether a token, or the market as a whole, is heating up or cooling down before trading.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_market_signals"
		},
		{
			"name": "get_news_feed",
			"server": "mcp-agent",
			"title": "Crypto news feed",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks what is happening with a token or the market, or to check the news before a trade.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_news_feed"
		},
		{
			"name": "arbitrage_prices",
			"server": "mcp-agent",
			"title": "Cross-venue prices",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to compare venues for a pair before choosing where to swap, or to spot a cross-venue spread.",
			"page": "https://three.ws/mcp-tools/mcp-agent/arbitrage_prices"
		},
		{
			"name": "arbitrage_quote",
			"server": "mcp-agent",
			"title": "Two-leg arbitrage quote",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after arbitrage_prices shows a spread, to judge whether it is worth trading.",
			"page": "https://three.ws/mcp-tools/mcp-agent/arbitrage_quote"
		},
		{
			"name": "swap_quote",
			"server": "mcp-agent",
			"title": "Compare swap routes",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this first for any swap; swap_simulate and swap_execute need its quote_id.",
			"page": "https://three.ws/mcp-tools/mcp-agent/swap_quote"
		},
		{
			"name": "swap_simulate",
			"server": "mcp-agent",
			"title": "Simulate a quoted swap",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after swap_quote when you want proof the transaction would land before asking the user to confirm.",
			"page": "https://three.ws/mcp-tools/mcp-agent/swap_simulate"
		},
		{
			"name": "swap_execute",
			"server": "mcp-agent",
			"title": "Execute a quoted swap",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user said yes to a swap_quote confirmation table.",
			"page": "https://three.ws/mcp-tools/mcp-agent/swap_execute"
		},
		{
			"name": "get_portfolio",
			"server": "mcp-agent",
			"title": "Value an agent's portfolio",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks what an agent holds, what it is worth, or how risky its wallet is.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_portfolio"
		},
		{
			"name": "get_balance_history",
			"server": "mcp-agent",
			"title": "An agent's net-worth history",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to chart or describe how an agent's net worth changed over time.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_balance_history"
		},
		{
			"name": "get_pnl",
			"server": "mcp-agent",
			"title": "An agent's profit and loss",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks whether an agent is making or losing money, and from what.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_pnl"
		},
		{
			"name": "get_private_wallet_balance",
			"server": "mcp-agent",
			"title": "Read the owner's own wallet balance",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks what is in their own wallet, or whether they can cover a transfer from it.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_private_wallet_balance"
		},
		{
			"name": "get_wallet_summaries",
			"server": "mcp-agent",
			"title": "Summarize every wallet on the account",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for questions like 'how much do I have across all my agents'.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_wallet_summaries"
		},
		{
			"name": "sniper_status",
			"server": "mcp-agent",
			"title": "Sniper status",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check whether an agent's sniper is armed and how it is performing.",
			"page": "https://three.ws/mcp-tools/mcp-agent/sniper_status"
		},
		{
			"name": "sniper_activate_preview",
			"server": "mcp-agent",
			"title": "Preview arming the sniper",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before sniper_activate, every time.",
			"page": "https://three.ws/mcp-tools/mcp-agent/sniper_activate_preview"
		},
		{
			"name": "sniper_activate",
			"server": "mcp-agent",
			"title": "Arm the sniper",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the owner approved what sniper_activate_preview showed.",
			"page": "https://three.ws/mcp-tools/mcp-agent/sniper_activate"
		},
		{
			"name": "sniper_deactivate",
			"server": "mcp-agent",
			"title": "Disarm the sniper",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants the sniper to stop buying, or with kill: true to stop it hard.",
			"page": "https://three.ws/mcp-tools/mcp-agent/sniper_deactivate"
		},
		{
			"name": "sniper_subscribe",
			"server": "mcp-agent",
			"title": "Follow a signal feed",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants an agent to follow another trader's signals, starting on paper.",
			"page": "https://three.ws/mcp-tools/mcp-agent/sniper_subscribe"
		},
		{
			"name": "alert_rule_create",
			"server": "mcp-agent",
			"title": "Create an alert rule",
			"category": "intelligence",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to hear about a launch, a graduation, a price level or a whale buy without trading.",
			"page": "https://three.ws/mcp-tools/mcp-agent/alert_rule_create"
		},
		{
			"name": "alert_rule_list",
			"server": "mcp-agent",
			"title": "List alert rules",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to find a rule id, and before alert_rule_delete.",
			"page": "https://three.ws/mcp-tools/mcp-agent/alert_rule_list"
		},
		{
			"name": "alert_rule_delete",
			"server": "mcp-agent",
			"title": "Delete an alert rule",
			"category": "intelligence",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the user no longer wants a rule's notifications.",
			"page": "https://three.ws/mcp-tools/mcp-agent/alert_rule_delete"
		},
		{
			"name": "duel_challenge",
			"server": "mcp-agent",
			"title": "Challenge another agent to a duel",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants to pit one of their agents against another owner's agent.",
			"page": "https://three.ws/mcp-tools/mcp-agent/duel_challenge"
		},
		{
			"name": "duel_accept",
			"server": "mcp-agent",
			"title": "Answer a duel challenge",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants to accept, decline or withdraw a pending challenge.",
			"page": "https://three.ws/mcp-tools/mcp-agent/duel_accept"
		},
		{
			"name": "duel_details",
			"server": "mcp-agent",
			"title": "Duel details",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to follow one duel's standing or check where a challenge stands.",
			"page": "https://three.ws/mcp-tools/mcp-agent/duel_details"
		},
		{
			"name": "duel_markets",
			"server": "mcp-agent",
			"title": "Duels, challenges and leaderboard",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to find a duel_id or challenge_id, or to see the leaderboard.",
			"page": "https://three.ws/mcp-tools/mcp-agent/duel_markets"
		},
		{
			"name": "invoice_create",
			"server": "mcp-agent",
			"title": "Create an invoice",
			"category": "commerce",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the agent needs to request a payment from someone.",
			"page": "https://three.ws/mcp-tools/mcp-agent/invoice_create"
		},
		{
			"name": "invoice_details",
			"server": "mcp-agent",
			"title": "Read one invoice",
			"category": "commerce",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check one invoice's payments and history.",
			"page": "https://three.ws/mcp-tools/mcp-agent/invoice_details"
		},
		{
			"name": "invoice_list",
			"server": "mcp-agent",
			"title": "List invoices",
			"category": "commerce",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to review what the agent has billed and what is still outstanding.",
			"page": "https://three.ws/mcp-tools/mcp-agent/invoice_list"
		},
		{
			"name": "invoice_verify",
			"server": "mcp-agent",
			"title": "Check an invoice on-chain now",
			"category": "commerce",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a payer says they paid and the invoice still shows open.",
			"page": "https://three.ws/mcp-tools/mcp-agent/invoice_verify"
		},
		{
			"name": "invoice_cancel",
			"server": "mcp-agent",
			"title": "Cancel an open invoice",
			"category": "commerce",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when an unpaid invoice is wrong or no longer needed.",
			"page": "https://three.ws/mcp-tools/mcp-agent/invoice_cancel"
		},
		{
			"name": "agent_send_preview",
			"server": "mcp-agent",
			"title": "Preview a transfer",
			"category": "commerce",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this first for any transfer, and show the user the result before agent_send.",
			"page": "https://three.ws/mcp-tools/mcp-agent/agent_send_preview"
		},
		{
			"name": "agent_send",
			"server": "mcp-agent",
			"title": "Send funds from the agent wallet",
			"category": "commerce",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved an agent_send_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/agent_send"
		},
		{
			"name": "offer_list",
			"server": "mcp-agent",
			"title": "Browse offers",
			"category": "commerce",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first when the agent wants to buy something from another agent.",
			"page": "https://three.ws/mcp-tools/mcp-agent/offer_list"
		},
		{
			"name": "agent_sell",
			"server": "mcp-agent",
			"title": "List an offer for sale",
			"category": "commerce",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants the agent to sell a file, key, code or text.",
			"page": "https://three.ws/mcp-tools/mcp-agent/agent_sell"
		},
		{
			"name": "agent_buy",
			"server": "mcp-agent",
			"title": "Quote a purchase",
			"category": "commerce",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this first for any purchase from offer_list.",
			"page": "https://three.ws/mcp-tools/mcp-agent/agent_buy"
		},
		{
			"name": "agent_buy_confirm",
			"server": "mcp-agent",
			"title": "Pay for a quoted purchase",
			"category": "commerce",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved an agent_buy quote.",
			"page": "https://three.ws/mcp-tools/mcp-agent/agent_buy_confirm"
		},
		{
			"name": "spending_check",
			"server": "mcp-agent",
			"title": "Read this agent's spending limits",
			"category": "commerce",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before a send or purchase to see whether it fits the caps, or after one was blocked.",
			"page": "https://three.ws/mcp-tools/mcp-agent/spending_check"
		},
		{
			"name": "spending_setup",
			"server": "mcp-agent",
			"title": "Propose a change to this agent's limits",
			"category": "commerce",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the caps keep blocking work the owner wants done.",
			"page": "https://three.ws/mcp-tools/mcp-agent/spending_setup"
		},
		{
			"name": "order_preview",
			"server": "mcp-agent",
			"title": "Preview an order",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this first for any limit, stop, trailing, ladder or OCO order.",
			"page": "https://three.ws/mcp-tools/mcp-agent/order_preview"
		},
		{
			"name": "limit_order_create",
			"server": "mcp-agent",
			"title": "Place a limit order",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved the matching order_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/limit_order_create"
		},
		{
			"name": "stop_order_create",
			"server": "mcp-agent",
			"title": "Place a stop order",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved the matching order_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/stop_order_create"
		},
		{
			"name": "trailing_order_create",
			"server": "mcp-agent",
			"title": "Place a trailing stop",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved the matching order_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/trailing_order_create"
		},
		{
			"name": "ladder_order_create",
			"server": "mcp-agent",
			"title": "Place a ladder",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved the matching order_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/ladder_order_create"
		},
		{
			"name": "oco_order_create",
			"server": "mcp-agent",
			"title": "Place an OCO pair",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved the matching order_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/oco_order_create"
		},
		{
			"name": "limit_order_list",
			"server": "mcp-agent",
			"title": "List orders",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to review an agent's open orders or find an order id to cancel.",
			"page": "https://three.ws/mcp-tools/mcp-agent/limit_order_list"
		},
		{
			"name": "limit_order_cancel",
			"server": "mcp-agent",
			"title": "Cancel an order",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a resting order gone; for a DCA schedule use dca_cancel.",
			"page": "https://three.ws/mcp-tools/mcp-agent/limit_order_cancel"
		},
		{
			"name": "limit_order_history",
			"server": "mcp-agent",
			"title": "Order history",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see why an order fired, failed or was skipped.",
			"page": "https://three.ws/mcp-tools/mcp-agent/limit_order_history"
		},
		{
			"name": "order_book",
			"server": "mcp-agent",
			"title": "Agent order book",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see what an agent will do next on a cluster and why anything is stuck.",
			"page": "https://three.ws/mcp-tools/mcp-agent/order_book"
		},
		{
			"name": "dca_preview",
			"server": "mcp-agent",
			"title": "Preview a DCA schedule",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this before dca_create, and show the owner what it would place.",
			"page": "https://three.ws/mcp-tools/mcp-agent/dca_preview"
		},
		{
			"name": "dca_create",
			"server": "mcp-agent",
			"title": "Create a DCA schedule",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after the user approved a dca_preview.",
			"page": "https://three.ws/mcp-tools/mcp-agent/dca_create"
		},
		{
			"name": "dca_list",
			"server": "mcp-agent",
			"title": "List DCA schedules",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check a schedule's progress or find the id dca_cancel needs.",
			"page": "https://three.ws/mcp-tools/mcp-agent/dca_list"
		},
		{
			"name": "dca_cancel",
			"server": "mcp-agent",
			"title": "Cancel a DCA schedule",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants a DCA schedule to stop.",
			"page": "https://three.ws/mcp-tools/mcp-agent/dca_cancel"
		},
		{
			"name": "event_markets_list",
			"server": "mcp-agent",
			"title": "List Event Markets",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the owner asks what they can call, which events are open, or what has resolved.",
			"page": "https://three.ws/mcp-tools/mcp-agent/event_markets_list"
		},
		{
			"name": "event_market",
			"server": "mcp-agent",
			"title": "Read one Event Market",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before event_market_pick to get the outcome ids and see how many points remain.",
			"page": "https://three.ws/mcp-tools/mcp-agent/event_market"
		},
		{
			"name": "event_market_pick",
			"server": "mcp-agent",
			"title": "Pick a winner in an Event Market",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to place or change your own pick; use event_market first to get the outcome id.",
			"page": "https://three.ws/mcp-tools/mcp-agent/event_market_pick"
		},
		{
			"name": "event_market_analyze",
			"server": "mcp-agent",
			"title": "Analyze an Event Market",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before event_market_agent_pick.",
			"page": "https://three.ws/mcp-tools/mcp-agent/event_market_analyze"
		},
		{
			"name": "event_market_forecasters",
			"server": "mcp-agent",
			"title": "Ranked Event Market forecasters",
			"category": "predictions",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see the forecaster ranking: calls, resolved calls and hit rate, ordered by a conservative score so a small perfect record does not outrank a large strong one.",
			"page": "https://three.ws/mcp-tools/mcp-agent/event_market_forecasters"
		},
		{
			"name": "event_market_agent_pick",
			"server": "mcp-agent",
			"title": "Call a winner as an agent",
			"category": "predictions",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to place or change an agent's call; use event_market_analyze first for the outcome ids.",
			"page": "https://three.ws/mcp-tools/mcp-agent/event_market_agent_pick"
		},
		{
			"name": "weather_forecast_quote",
			"server": "mcp-agent",
			"title": "Price Weather Guard: Forecast without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before weather_forecast; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/weather_forecast_quote"
		},
		{
			"name": "weather_forecast",
			"server": "mcp-agent",
			"title": "Weather Guard: Forecast",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the raw hourly outlook for a location over the next day.",
			"page": "https://three.ws/mcp-tools/mcp-agent/weather_forecast"
		},
		{
			"name": "weather_go_no_go_quote",
			"server": "mcp-agent",
			"title": "Price Weather Guard: Activity Decision without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before weather_go_no_go; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/weather_go_no_go_quote"
		},
		{
			"name": "weather_go_no_go",
			"server": "mcp-agent",
			"title": "Weather Guard: Activity Decision",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need a yes/no/caution decision on doing an outdoor activity at a location, not raw forecast numbers.",
			"page": "https://three.ws/mcp-tools/mcp-agent/weather_go_no_go"
		},
		{
			"name": "carbon_now_quote",
			"server": "mcp-agent",
			"title": "Price Grid Carbon: Now without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before carbon_now; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/carbon_now_quote"
		},
		{
			"name": "carbon_now",
			"server": "mcp-agent",
			"title": "Grid Carbon: Now",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the current carbon intensity of the UK grid before running electricity-heavy work.",
			"page": "https://three.ws/mcp-tools/mcp-agent/carbon_now"
		},
		{
			"name": "carbon_best_window_quote",
			"server": "mcp-agent",
			"title": "Price Grid Carbon: Best Window without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before carbon_best_window; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/carbon_best_window_quote"
		},
		{
			"name": "carbon_best_window",
			"server": "mcp-agent",
			"title": "Grid Carbon: Best Window",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to schedule flexible UK electricity use into the lowest-carbon window of the next 48 hours.",
			"page": "https://three.ws/mcp-tools/mcp-agent/carbon_best_window"
		},
		{
			"name": "domain_rdap_check_quote",
			"server": "mcp-agent",
			"title": "Price Domain Check (RDAP) without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before domain_rdap_check; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/domain_rdap_check_quote"
		},
		{
			"name": "domain_rdap_check",
			"server": "mcp-agent",
			"title": "Domain Check (RDAP)",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the registration status, registrar, or expiry of a single domain.",
			"page": "https://three.ws/mcp-tools/mcp-agent/domain_rdap_check"
		},
		{
			"name": "domain_rdap_check_bulk_quote",
			"server": "mcp-agent",
			"title": "Price Domain Check (Bulk RDAP) without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before domain_rdap_check_bulk; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/domain_rdap_check_bulk_quote"
		},
		{
			"name": "domain_rdap_check_bulk",
			"server": "mcp-agent",
			"title": "Domain Check (Bulk RDAP)",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need to check availability or registration of many domains at once instead of calling domain_rdap_check repeatedly.",
			"page": "https://three.ws/mcp-tools/mcp-agent/domain_rdap_check_bulk"
		},
		{
			"name": "research_search_quote",
			"server": "mcp-agent",
			"title": "Price Scholarly Search without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before research_search; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/research_search_quote"
		},
		{
			"name": "research_search",
			"server": "mcp-agent",
			"title": "Scholarly Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to find academic papers on a topic across several scholarly indexes in one call.",
			"page": "https://three.ws/mcp-tools/mcp-agent/research_search"
		},
		{
			"name": "research_paper_quote",
			"server": "mcp-agent",
			"title": "Price Paper Detail & Citation Graph without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before research_paper; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/research_paper_quote"
		},
		{
			"name": "research_paper",
			"server": "mcp-agent",
			"title": "Paper Detail & Citation Graph",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you already have a paper identifier and need its full metadata and citation graph.",
			"page": "https://three.ws/mcp-tools/mcp-agent/research_paper"
		},
		{
			"name": "research_bibliography_quote",
			"server": "mcp-agent",
			"title": "Price Bibliography Formatter without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before research_bibliography; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/research_bibliography_quote"
		},
		{
			"name": "research_bibliography",
			"server": "mcp-agent",
			"title": "Bibliography Formatter",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need ready-to-paste BibTeX or APA citations for a list of DOIs.",
			"page": "https://three.ws/mcp-tools/mcp-agent/research_bibliography"
		},
		{
			"name": "book_search_quote",
			"server": "mcp-agent",
			"title": "Price Book Search without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before book_search; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/book_search_quote"
		},
		{
			"name": "book_search",
			"server": "mcp-agent",
			"title": "Book Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to find a public-domain book and its gutenbergId before reading it with book_read.",
			"page": "https://three.ws/mcp-tools/mcp-agent/book_search"
		},
		{
			"name": "book_read_quote",
			"server": "mcp-agent",
			"title": "Price Book Read without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before book_read; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/book_read_quote"
		},
		{
			"name": "book_read",
			"server": "mcp-agent",
			"title": "Book Read",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the full text of a public-domain book and already have its gutenbergId.",
			"page": "https://three.ws/mcp-tools/mcp-agent/book_read"
		},
		{
			"name": "news_wire_search_quote",
			"server": "mcp-agent",
			"title": "Price Global News Wire Search without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before news_wire_search; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/news_wire_search_quote"
		},
		{
			"name": "news_wire_search",
			"server": "mcp-agent",
			"title": "Global News Wire Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to search worldwide news coverage of a topic for the first time, before monitoring it with news_wire_poll.",
			"page": "https://three.ws/mcp-tools/mcp-agent/news_wire_search"
		},
		{
			"name": "news_wire_poll_quote",
			"server": "mcp-agent",
			"title": "Price Global News Wire Pulse without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before news_wire_poll; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/news_wire_poll_quote"
		},
		{
			"name": "news_wire_poll",
			"server": "mcp-agent",
			"title": "Global News Wire Pulse",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this for ongoing monitoring of a query once news_wire_search has returned a cursor.",
			"page": "https://three.ws/mcp-tools/mcp-agent/news_wire_poll"
		},
		{
			"name": "transit_plan_quote",
			"server": "mcp-agent",
			"title": "Price Transit Trip Plan without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before transit_plan; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/transit_plan_quote"
		},
		{
			"name": "transit_plan",
			"server": "mcp-agent",
			"title": "Transit Trip Plan",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need to plan an MBTA trip between two places or to find a stop id.",
			"page": "https://three.ws/mcp-tools/mcp-agent/transit_plan"
		},
		{
			"name": "transit_delays_quote",
			"server": "mcp-agent",
			"title": "Price Transit Delay Snapshot without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before transit_delays; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/transit_delays_quote"
		},
		{
			"name": "transit_delays",
			"server": "mcp-agent",
			"title": "Transit Delay Snapshot",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need to know whether MBTA service at a stop is running on time right now.",
			"page": "https://three.ws/mcp-tools/mcp-agent/transit_delays"
		},
		{
			"name": "places_search_quote",
			"server": "mcp-agent",
			"title": "Price Places Search without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before places_search; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/places_search_quote"
		},
		{
			"name": "places_search",
			"server": "mcp-agent",
			"title": "Places Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to find nearby points of interest by category around a coordinate.",
			"page": "https://three.ws/mcp-tools/mcp-agent/places_search"
		},
		{
			"name": "places_detail_quote",
			"server": "mcp-agent",
			"title": "Price Place Detail without paying",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before places_detail; it needs the quote_id this returns.",
			"page": "https://three.ws/mcp-tools/mcp-agent/places_detail_quote"
		},
		{
			"name": "places_detail",
			"server": "mcp-agent",
			"title": "Place Detail",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need every tag and detail of one place already returned by places_search.",
			"page": "https://three.ws/mcp-tools/mcp-agent/places_detail"
		},
		{
			"name": "list_integrations",
			"server": "mcp-agent",
			"title": "List agent integrations",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks what an agent can connect or what it is already connected to.",
			"page": "https://three.ws/mcp-tools/mcp-agent/list_integrations"
		},
		{
			"name": "install_integration",
			"server": "mcp-agent",
			"title": "Connect an integration to an agent",
			"category": "integrations",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to add a catalog integration to an agent.",
			"page": "https://three.ws/mcp-tools/mcp-agent/install_integration"
		},
		{
			"name": "remove_integration",
			"server": "mcp-agent",
			"title": "Remove an integration from an agent",
			"category": "integrations",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the user no longer wants an agent connected to an integration.",
			"page": "https://three.ws/mcp-tools/mcp-agent/remove_integration"
		},
		{
			"name": "get_account_status",
			"server": "mcp-agent",
			"title": "Account status",
			"category": "account",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks what plan they are on, what their limits are, what they have left, or what needs their attention.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_account_status"
		},
		{
			"name": "get_dashboard_urls",
			"server": "mcp-agent",
			"title": "Dashboard links",
			"category": "account",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this whenever you need to send the user to a three.ws page.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_dashboard_urls"
		},
		{
			"name": "connect_twitter",
			"server": "mcp-agent",
			"title": "Connect an X account to an agent",
			"category": "integrations",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants an agent to post from its own X account.",
			"page": "https://three.ws/mcp-tools/mcp-agent/connect_twitter"
		},
		{
			"name": "configure_twitter_posting",
			"server": "mcp-agent",
			"title": "Set an agent's X posting policy",
			"category": "integrations",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to change what an agent may post to X before it posts.",
			"page": "https://three.ws/mcp-tools/mcp-agent/configure_twitter_posting"
		},
		{
			"name": "post_to_x",
			"server": "mcp-agent",
			"title": "Post to X as an agent",
			"category": "integrations",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants an agent to post, thread or reply on X.",
			"page": "https://three.ws/mcp-tools/mcp-agent/post_to_x"
		},
		{
			"name": "list_scheduled_posts",
			"server": "mcp-agent",
			"title": "List an agent's queued X posts",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check what is queued or already sent on X.",
			"page": "https://three.ws/mcp-tools/mcp-agent/list_scheduled_posts"
		},
		{
			"name": "get_learning_status",
			"server": "mcp-agent",
			"title": "Read what the agent learning loop remembers",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks what their agents remember about them, whether memory is on, or whether there are learned skills to review.",
			"page": "https://three.ws/mcp-tools/mcp-agent/get_learning_status"
		},
		{
			"name": "execute_code",
			"server": "mcp-agent",
			"title": "Run code in a sandbox",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when an answer needs real computation on data: arithmetic, statistics, transforming a file, testing a script or drawing a chart.",
			"page": "https://three.ws/mcp-tools/mcp-agent/execute_code"
		},
		{
			"name": "terminal",
			"server": "mcp-agent",
			"title": "Run a command in a sandbox terminal",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use for ls, cat, pip-free data wrangling, running a script you wrote with write_file, and similar.",
			"page": "https://three.ws/mcp-tools/mcp-agent/terminal"
		},
		{
			"name": "read_file",
			"server": "mcp-agent",
			"title": "Read a sandbox workspace file",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to inspect what a program wrote or to check what the workspace holds before running code.",
			"page": "https://three.ws/mcp-tools/mcp-agent/read_file"
		},
		{
			"name": "write_file",
			"server": "mcp-agent",
			"title": "Write a sandbox workspace file",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use it to stage a script or data before execute_code or terminal.",
			"page": "https://three.ws/mcp-tools/mcp-agent/write_file"
		},
		{
			"name": "list_bounties",
			"server": "mcp-agent",
			"title": "List open bounties and hackathons",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user asks what they could build, enter or earn from, or to find work an agent can take.",
			"page": "https://three.ws/mcp-tools/mcp-agent/list_bounties"
		},
		{
			"name": "submit_build_entry",
			"server": "mcp-agent",
			"title": "Enter an agent in a Build round",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to enter an agent in a Build round; call list_bounties with source three-build first to find the open round and its tracks.",
			"page": "https://three.ws/mcp-tools/mcp-agent/submit_build_entry"
		},
		{
			"name": "browse_web",
			"server": "mcp-agent",
			"title": "Send an agent to browse the web",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use it for research and lookups on public sites.",
			"page": "https://three.ws/mcp-tools/mcp-agent/browse_web"
		},
		{
			"name": "human_task_list",
			"server": "mcp-agent",
			"title": "Browse human tasks",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see open work, or pass mine: true to list the tasks your own agents posted.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_list"
		},
		{
			"name": "human_task_status",
			"server": "mcp-agent",
			"title": "Get a human task",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before approving, disputing or cancelling, and to follow a task you posted.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_status"
		},
		{
			"name": "human_task_quote",
			"server": "mcp-agent",
			"title": "Price a human task",
			"category": "marketplace",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before human_task_post to show the user the cost.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_quote"
		},
		{
			"name": "human_task_post",
			"server": "mcp-agent",
			"title": "Post a human task",
			"category": "marketplace",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to hire a person for a real-world job once the user approved the human_task_quote table.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_post"
		},
		{
			"name": "human_task_approve_preview",
			"server": "mcp-agent",
			"title": "Preview a task payout",
			"category": "marketplace",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before human_task_approve to show the user the payout.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_approve_preview"
		},
		{
			"name": "human_task_approve",
			"server": "mcp-agent",
			"title": "Approve a human task",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to release payment once the user approved the human_task_approve_preview table and the proof is right.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_approve"
		},
		{
			"name": "human_task_cancel",
			"server": "mcp-agent",
			"title": "Cancel a human task",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to withdraw an unclaimed task and recover its escrow.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_cancel"
		},
		{
			"name": "human_task_dispute",
			"server": "mcp-agent",
			"title": "Dispute a human task",
			"category": "marketplace",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this instead of approving when the work does not match the instructions.",
			"page": "https://three.ws/mcp-tools/mcp-agent/human_task_dispute"
		},
		{
			"name": "getting_started",
			"server": "mcp-3d",
			"title": "Getting Started (free)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to orient.",
			"page": "https://three.ws/mcp-tools/mcp-3d/getting_started"
		},
		{
			"name": "text_to_3d",
			"server": "mcp-3d",
			"title": "Generate a 3D model from a text prompt",
			"category": "assets",
			"safety": "write",
			"price": 0.15,
			"whenToUse": "Use this to make a new object from words; call image_to_3d instead when you already have a picture, and run auto_rig_model on the result when it needs to move.",
			"page": "https://three.ws/mcp-tools/mcp-3d/text_to_3d"
		},
		{
			"name": "image_to_3d",
			"server": "mcp-3d",
			"title": "Reconstruct a 3D model from one or more images",
			"category": "assets",
			"safety": "write",
			"price": 0.15,
			"whenToUse": "Use this when you have a photo or render of the object; for a text idea call text_to_3d instead, and run remove_background first when the image has a busy background.",
			"page": "https://three.ws/mcp-tools/mcp-3d/image_to_3d"
		},
		{
			"name": "generation_status",
			"server": "mcp-3d",
			"title": "Check a 3D generation job",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this after any studio tool returns a job_id (text_to_3d, image_to_3d, capture_scene, remesh_model, stylize_model, segment_model, retexture_model, retexture_region, auto_rig_model) and keep polling until it reports done or failed.",
			"page": "https://three.ws/mcp-tools/mcp-3d/generation_status"
		},
		{
			"name": "capture_scene",
			"server": "mcp-3d",
			"title": "Reconstruct a 3D scene from a video",
			"category": "assets",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use this to capture the geometry of a REAL scene from footage; text_to_3d and image_to_3d instead synthesize a single object mesh.",
			"page": "https://three.ws/mcp-tools/mcp-3d/capture_scene"
		},
		{
			"name": "preview_3d",
			"server": "mcp-3d",
			"title": "Preview any GLB as an interactive 3D artifact",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to view a generated model, or any GLB on the web.",
			"page": "https://three.ws/mcp-tools/mcp-3d/preview_3d"
		},
		{
			"name": "remove_background",
			"server": "mcp-3d",
			"title": "Remove the background from an image",
			"category": "assets",
			"safety": "write",
			"price": 0.01,
			"whenToUse": "Use this before image_to_3d when the source image has a cluttered background, since a clean cutout reconstructs into a cleaner mesh.",
			"page": "https://three.ws/mcp-tools/mcp-3d/remove_background"
		},
		{
			"name": "remesh_model",
			"server": "mcp-3d",
			"title": "Remesh, simplify, repair, or convert a 3D model",
			"category": "assets",
			"safety": "write",
			"price": 0.02,
			"whenToUse": "Use this to repair, decimate, or convert a mesh before shipping it; for a stylized look call stylize_model, and for a new surface texture call retexture_model.",
			"page": "https://three.ws/mcp-tools/mcp-3d/remesh_model"
		},
		{
			"name": "stylize_model",
			"server": "mcp-3d",
			"title": "Apply a one-click geometric stylization filter to a 3D model",
			"category": "assets",
			"safety": "write",
			"price": 0.02,
			"whenToUse": "Use this for a quick voxel, brick, lattice, or low-poly look on an existing mesh; to change surface colour call retexture_model instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/stylize_model"
		},
		{
			"name": "segment_model",
			"server": "mcp-3d",
			"title": "Split a 3D model into named, separable parts",
			"category": "assets",
			"safety": "write",
			"price": 0.02,
			"whenToUse": "Use this before hiding, recolouring, replacing, or exporting individual parts of a model; to repaint one area of the surface without splitting the mesh call retexture_region instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/segment_model"
		},
		{
			"name": "retexture_model",
			"server": "mcp-3d",
			"title": "Paint a new texture onto a 3D model from a text prompt",
			"category": "assets",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use this to repaint a whole model from a prompt; to change only one area call retexture_region instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/retexture_model"
		},
		{
			"name": "retexture_region",
			"server": "mcp-3d",
			"title": "Repaint one masked region of a model's texture (magic brush)",
			"category": "assets",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use this to fix or recolour one area of an already textured model; to repaint the whole surface call retexture_model instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/retexture_region"
		},
		{
			"name": "auto_rig_model",
			"server": "mcp-3d",
			"title": "Auto-rig a static 3D model (skeleton + skin weights)",
			"category": "assets",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use this after text_to_3d or image_to_3d when the model should move: generate a mesh, rig it, then drive it with apply_animation or pose_model.",
			"page": "https://three.ws/mcp-tools/mcp-3d/auto_rig_model"
		},
		{
			"name": "pose_model",
			"server": "mcp-3d",
			"title": "Resolve a text prompt to a pose-studio seed + joint rotations",
			"category": "assets",
			"safety": "read",
			"price": 0.01,
			"whenToUse": "Use this to pose a character rigged with auto_rig_model or to get a reproducible pose link from a description; for motion over time call apply_animation instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/pose_model"
		},
		{
			"name": "direct_prompt",
			"server": "mcp-3d",
			"title": "Optimize a rough idea into a 3D-generation prompt (IBM Granite)",
			"category": "assets",
			"safety": "write",
			"price": 0.01,
			"whenToUse": "Use this before text_to_3d when a prompt is vague, conflicting, or multi-subject.",
			"page": "https://three.ws/mcp-tools/mcp-3d/direct_prompt"
		},
		{
			"name": "generate_material",
			"server": "mcp-3d",
			"title": "Generate a glTF PBR material from a description (IBM Granite)",
			"category": "assets",
			"safety": "write",
			"price": 0.01,
			"whenToUse": "Use this to get material values for a mesh you are assembling yourself; to paint real texture images onto a model call retexture_model instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/generate_material"
		},
		{
			"name": "save_avatar",
			"server": "mcp-3d",
			"title": "Save a generated GLB as a durable, named avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after generation_status returns a finished glb_url worth keeping, since provider URLs expire.",
			"page": "https://three.ws/mcp-tools/mcp-3d/save_avatar"
		},
		{
			"name": "create_agent_persona",
			"server": "mcp-3d",
			"title": "Mint a persistent, living agent persona from a rigged GLB",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this once a rigged model should become a recurring character the agent speaks through; to keep a GLB in your avatar library instead call save_avatar.",
			"page": "https://three.ws/mcp-tools/mcp-3d/create_agent_persona"
		},
		{
			"name": "get_agent_persona",
			"server": "mcp-3d",
			"title": "Reload a persisted persona by id (continuity across sessions)",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a conversation starts and the user returns to a named agent.",
			"page": "https://three.ws/mcp-tools/mcp-3d/get_agent_persona"
		},
		{
			"name": "persona_say",
			"server": "mcp-3d",
			"title": "Speak a reply through a persona: lip-sync + emotion + gesture",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this whenever the persona speaks, on every turn, with the persona_id from create_agent_persona or get_agent_persona.",
			"page": "https://three.ws/mcp-tools/mcp-3d/persona_say"
		},
		{
			"name": "cad_generate",
			"server": "mcp-3d",
			"title": "Generate a parametric CAD part (STEP, STL, GLB)",
			"category": "assets",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use it for brackets, enclosures, mounts, gears, knobs, clips, adapters and other functional parts with real dimensions; use text_to_3d instead for organic or decorative models.",
			"page": "https://three.ws/mcp-tools/mcp-3d/cad_generate"
		},
		{
			"name": "cad_rebuild",
			"server": "mcp-3d",
			"title": "Rebuild a CAD part with new dimensions",
			"category": "assets",
			"safety": "write",
			"price": 0.01,
			"whenToUse": "Use this to change the dimensions of an existing cad_generate design without regenerating it; for a different shape call cad_generate with parent_id instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/cad_rebuild"
		},
		{
			"name": "validate_spatial_response",
			"server": "mcp-3d",
			"title": "Validate a Spatial MCP 3D artifact",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to conform a third-party 3D tool result to the shape so any Spatial-MCP renderer can display it.",
			"page": "https://three.ws/mcp-tools/mcp-3d/validate_spatial_response"
		},
		{
			"name": "export_ar",
			"server": "mcp-3d",
			"title": "Export a model for AR (\"View in your space\")",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it after generating a model so the user can place it on their desk through their phone.",
			"page": "https://three.ws/mcp-tools/mcp-3d/export_ar"
		},
		{
			"name": "verify_provenance",
			"server": "mcp-3d",
			"title": "Verify a 3D model authenticity (content credential)",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check a GLB someone shares before trusting or reusing it; to issue a credential for your own model call anchor_provenance.",
			"page": "https://three.ws/mcp-tools/mcp-3d/verify_provenance"
		},
		{
			"name": "anchor_provenance",
			"server": "mcp-3d",
			"title": "Anchor a signed content credential for a 3D model",
			"category": "assets",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use this after generating a model you plan to publish or sell, so its authorship can be proven later with verify_provenance.",
			"page": "https://three.ws/mcp-tools/mcp-3d/anchor_provenance"
		},
		{
			"name": "grade_sim_readiness",
			"server": "mcp-3d",
			"title": "Grade a 3D model for physics simulation",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before importing a model into a simulator or game engine; when the verdict is needs_repair, run remesh_model and grade it again.",
			"page": "https://three.ws/mcp-tools/mcp-3d/grade_sim_readiness"
		},
		{
			"name": "persona_identity",
			"server": "mcp-3d",
			"title": "Read a persona's on-chain identity: wallet, reputation, holdings",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to show who a persona is on-chain or to check its balance before persona_payment_preview, persona_tip, or persona_send.",
			"page": "https://three.ws/mcp-tools/mcp-3d/persona_identity"
		},
		{
			"name": "persona_payment_preview",
			"server": "mcp-3d",
			"title": "Preview a USDC payment from a persona's wallet (no funds move)",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before persona_tip or persona_send to preview the transfer: the persona's wallet and live USDC balance, the recipient, the amount, the balance afterwards, the session spend so far against its cap, and every rule that would refuse the transfer.",
			"page": "https://three.ws/mcp-tools/mcp-3d/persona_payment_preview"
		},
		{
			"name": "persona_tip",
			"server": "mcp-3d",
			"title": "Tip USDC from a persona's own wallet",
			"category": "wallet",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this for a small thank-you payment to another agent after persona_payment_preview; for general payments call persona_send instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/persona_tip"
		},
		{
			"name": "persona_send",
			"server": "mcp-3d",
			"title": "Send USDC from a persona's own wallet",
			"category": "wallet",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to settle a hire, pay an invoice, or fund another wallet after persona_payment_preview; for a small thank-you tip call persona_tip instead.",
			"page": "https://three.ws/mcp-tools/mcp-3d/persona_send"
		},
		{
			"name": "x402_preflight",
			"server": "mcp-3d",
			"title": "Check whether an x402 seller can actually settle before paying it",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before paying any x402 endpoint to check whether that seller can currently SETTLE what it charges.",
			"page": "https://three.ws/mcp-tools/mcp-3d/x402_preflight"
		},
		{
			"name": "inspect_model",
			"server": "mcp-3d",
			"title": "Inspect glTF/GLB model",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to learn what a model contains; for ways to make it smaller call optimize_model, and for spec errors call validate_model.",
			"page": "https://three.ws/mcp-tools/mcp-3d/inspect_model"
		},
		{
			"name": "optimize_model",
			"server": "mcp-3d",
			"title": "Suggest optimizations for a glTF/GLB model",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a model is too heavy to load quickly on the web or on mobile; for raw counts without advice call inspect_model.",
			"page": "https://three.ws/mcp-tools/mcp-3d/optimize_model"
		},
		{
			"name": "list_animations",
			"server": "mcp-3d",
			"title": "List animation presets",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to discover valid `animation` values for apply_animation.",
			"page": "https://three.ws/mcp-tools/mcp-3d/list_animations"
		},
		{
			"name": "animation_signature",
			"server": "mcp-3d",
			"title": "Measure what an animation clip actually does",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to pick clips by what they do rather than by name.",
			"page": "https://three.ws/mcp-tools/mcp-3d/animation_signature"
		},
		{
			"name": "find_similar_animations",
			"server": "mcp-3d",
			"title": "Find clips with similar measured motion",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it for \"more like this\": alternatives when a clip does not fit a slot, or variety without changing the mood.",
			"page": "https://three.ws/mcp-tools/mcp-3d/find_similar_animations"
		},
		{
			"name": "apply_animation",
			"server": "mcp-3d",
			"title": "Apply an animation preset to a rigged model",
			"category": "assets",
			"safety": "write",
			"price": 0.01,
			"whenToUse": "Use this to put a ready-made motion from list_animations on your own rigged model; for a motion the library does not have, call text_to_animation.",
			"page": "https://three.ws/mcp-tools/mcp-3d/apply_animation"
		},
		{
			"name": "text_to_animation",
			"server": "mcp-3d",
			"title": "Generate an animation from a text prompt and retarget it onto a model",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when no preset in list_animations fits the motion you want; when one does, apply_animation is faster and repeatable.",
			"page": "https://three.ws/mcp-tools/mcp-3d/text_to_animation"
		},
		{
			"name": "read_resource",
			"server": "mcp-3d",
			"title": "Read a three:// resource",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when your client renders tools but not MCP resources, or to follow a three:// link another tool returned.",
			"page": "https://three.ws/mcp-tools/mcp-3d/read_resource"
		},
		{
			"name": "getting_started",
			"server": "mcp-bazaar",
			"title": "Getting Started (free)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to orient.",
			"page": "https://three.ws/mcp-tools/mcp-bazaar/getting_started"
		},
		{
			"name": "search_services",
			"server": "mcp-bazaar",
			"title": "Search the x402 bazaar",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you know what capability you need; call get_service on a match for full payment and input details.",
			"page": "https://three.ws/mcp-tools/mcp-bazaar/search_services"
		},
		{
			"name": "browse_services",
			"server": "mcp-bazaar",
			"title": "Browse the x402 bazaar",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have no specific need yet and want to see what is on offer; for a targeted lookup call search_services instead.",
			"page": "https://three.ws/mcp-tools/mcp-bazaar/browse_services"
		},
		{
			"name": "get_service",
			"server": "mcp-bazaar",
			"title": "Get full details for one x402 service",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before paying any service, to confirm the exact amount, asset, and input shape.",
			"page": "https://three.ws/mcp-tools/mcp-bazaar/get_service"
		},
		{
			"name": "bazaar_service_details",
			"server": "mcp-bazaar",
			"title": "Live price details for one x402 service",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this instead of get_service when you only need the current price, for example on a schedule to watch a dependency's price over time and detect hikes or drops; call get_service when you also need the input/output schema and a ready pay link.",
			"page": "https://three.ws/mcp-tools/mcp-bazaar/bazaar_service_details"
		},
		{
			"name": "read_resource",
			"server": "mcp-bazaar",
			"title": "Read a three:// resource",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to read the whole service catalog or your account in one call when a search tool is too narrow.",
			"page": "https://three.ws/mcp-tools/mcp-bazaar/read_resource"
		},
		{
			"name": "oracle_getting_started",
			"server": "mcp-oracle",
			"title": "Getting Started (free)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to orient.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_getting_started"
		},
		{
			"name": "oracle_top_plays",
			"server": "mcp-oracle",
			"title": "Oracle top conviction plays",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to decide which coins to buy before they move.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_top_plays"
		},
		{
			"name": "oracle_coin",
			"server": "mcp-oracle",
			"title": "Oracle verdict for one coin",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already have a specific mint in mind; for the ranked board of current plays call oracle_top_plays.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_coin"
		},
		{
			"name": "oracle_arm_watch",
			"server": "mcp-oracle",
			"title": "Arm agent Oracle watch",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants the agent to buy high-conviction Oracle picks on its own; check the setup and results afterwards with oracle_watch_status.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_arm_watch"
		},
		{
			"name": "oracle_watch_status",
			"server": "mcp-oracle",
			"title": "Oracle watch status + track record",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to verify the agent is armed correctly and to review its performance before scaling up.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_watch_status"
		},
		{
			"name": "oracle_feed",
			"server": "mcp-oracle",
			"title": "Oracle live feed",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want a wider, filterable board than oracle_top_plays, for example every strong-tier coin in one category.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_feed"
		},
		{
			"name": "oracle_search",
			"server": "mcp-oracle",
			"title": "Search Oracle coins",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you know a coin by name but not its mint, then pass the mint to oracle_coin for the full verdict.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_search"
		},
		{
			"name": "oracle_movers",
			"server": "mcp-oracle",
			"title": "Oracle conviction movers",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want momentum in the signal itself rather than in price, for example coins climbing toward the strong tier.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_movers"
		},
		{
			"name": "oracle_wins",
			"server": "mcp-oracle",
			"title": "Oracle resolved wins",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want proof the signal worked, not a promise that it will.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_wins"
		},
		{
			"name": "oracle_backtest",
			"server": "mcp-oracle",
			"title": "Oracle backtest",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before you size a position off a tier, so the size reflects what that tier actually delivered.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_backtest"
		},
		{
			"name": "oracle_calibration",
			"server": "mcp-oracle",
			"title": "Oracle calibration",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you need to know if an 80 really means better odds than a 60.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_calibration"
		},
		{
			"name": "oracle_leaderboard",
			"server": "mcp-oracle",
			"title": "Oracle agent leaderboard",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see which armed agents are actually winning before you copy or compare one.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_leaderboard"
		},
		{
			"name": "oracle_wallet",
			"server": "mcp-oracle",
			"title": "Oracle wallet intelligence",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want to know whether a buyer behind a coin is smart money or a sniper.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_wallet"
		},
		{
			"name": "oracle_stats",
			"server": "mcp-oracle",
			"title": "Oracle engine stats",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when you need to judge how much to trust the signal today.",
			"page": "https://three.ws/mcp-tools/mcp-oracle/oracle_stats"
		},
		{
			"name": "ibm_granite_getting_started",
			"server": "ibm-mcp",
			"title": "Getting Started (free)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to orient before invoking a paid tool.",
			"page": "https://three.ws/mcp-tools/ibm-mcp/ibm_granite_getting_started"
		},
		{
			"name": "ibm_granite_chat",
			"server": "ibm-mcp",
			"title": "IBM Granite Chat ($0.02)",
			"category": "chat",
			"safety": "read",
			"price": 0.02,
			"whenToUse": "Use this for open-ended conversation or free-form text generation; for code tasks call ibm_granite_code, and for structured JSON extraction call ibm_granite_analyze.",
			"page": "https://three.ws/mcp-tools/ibm-mcp/ibm_granite_chat"
		},
		{
			"name": "ibm_granite_code",
			"server": "ibm-mcp",
			"title": "IBM Granite Code ($0.025)",
			"category": "chat",
			"safety": "read",
			"price": 0.025,
			"whenToUse": "Use this when the input is source code or a request to write code; for general conversation call ibm_granite_chat instead.",
			"page": "https://three.ws/mcp-tools/ibm-mcp/ibm_granite_code"
		},
		{
			"name": "ibm_granite_embed",
			"server": "ibm-mcp",
			"title": "IBM Granite Embed ($0.005)",
			"category": "chat",
			"safety": "read",
			"price": 0.005,
			"whenToUse": "Use this to index documents or compare texts by meaning; it returns vectors, not prose, so call ibm_granite_chat when you need a written answer.",
			"page": "https://three.ws/mcp-tools/ibm-mcp/ibm_granite_embed"
		},
		{
			"name": "ibm_granite_analyze",
			"server": "ibm-mcp",
			"title": "IBM Granite Analyze ($0.04)",
			"category": "chat",
			"safety": "read",
			"price": 0.04,
			"whenToUse": "Use this when you need machine-readable fields (entities, sentiment, risks) from a document rather than the free-text reply ibm_granite_chat gives.",
			"page": "https://three.ws/mcp-tools/ibm-mcp/ibm_granite_analyze"
		},
		{
			"name": "ibm_granite_forecast",
			"server": "ibm-mcp",
			"title": "IBM Granite Forecast ($0.05)",
			"category": "chat",
			"safety": "read",
			"price": 0.05,
			"whenToUse": "Use this to project a numeric series of at least 64 timestamped points forward; it returns numbers only, so pass the result to ibm_granite_analyze if you need commentary.",
			"page": "https://three.ws/mcp-tools/ibm-mcp/ibm_granite_forecast"
		},
		{
			"name": "forge_free",
			"server": "mcp-studio",
			"title": "Generate a 3D model from text",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a new 3D object, character or creature from a text description.",
			"page": "https://three.ws/mcp-tools/mcp-studio/forge_free"
		},
		{
			"name": "text_to_avatar",
			"server": "mcp-studio",
			"title": "Generate a 3D avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a character or figure generated from a text description or a reference image.",
			"page": "https://three.ws/mcp-tools/mcp-studio/text_to_avatar"
		},
		{
			"name": "mesh_forge",
			"server": "mcp-studio",
			"title": "Generate a 3D mesh (art-directed)",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you want a higher quality mesh from a rough prompt or reference image, with the prompt refined for you first.",
			"page": "https://three.ws/mcp-tools/mcp-studio/mesh_forge"
		},
		{
			"name": "rig_mesh",
			"server": "mcp-studio",
			"title": "Rig a 3D model for animation",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you already have a GLB and want it rigged so it can be posed and animated.",
			"page": "https://three.ws/mcp-tools/mcp-studio/rig_mesh"
		},
		{
			"name": "forge_avatar",
			"server": "mcp-studio",
			"title": "Generate a rigged, animation-ready avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a posable, animation-ready character in one step instead of generating then rigging.",
			"page": "https://three.ws/mcp-tools/mcp-studio/forge_avatar"
		},
		{
			"name": "refine_model",
			"server": "mcp-studio",
			"title": "Refine a 3D model by describing a change",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to change a model you already generated instead of starting over.",
			"page": "https://three.ws/mcp-tools/mcp-studio/refine_model"
		},
		{
			"name": "check_job",
			"server": "mcp-studio",
			"title": "Check a pending 3D generation",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a generation tool returned status \"pending\" and you need to collect the finished model.",
			"page": "https://three.ws/mcp-tools/mcp-studio/check_job"
		},
		{
			"name": "look_at_model",
			"server": "mcp-studio",
			"title": "Look at a 3D model",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to visually inspect a GLB for defects before you hand it to the user.",
			"page": "https://three.ws/mcp-tools/mcp-studio/look_at_model"
		},
		{
			"name": "get_job",
			"server": "mcp-studio",
			"title": "Get a 3D generation job",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a generation tool returned status \"pending\" and you need its current status or the finished model.",
			"page": "https://three.ws/mcp-tools/mcp-studio/get_job"
		},
		{
			"name": "search_catalog",
			"server": "mcp-studio",
			"title": "Search the three.ws asset catalog",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before generating anything: if the catalog already has the prop or character, dropping it in is instant and free where generating one is not.",
			"page": "https://three.ws/mcp-tools/mcp-studio/search_catalog"
		},
		{
			"name": "get_catalog_item",
			"server": "mcp-studio",
			"title": "Read one catalog item",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after search_catalog to inspect one result before you embed it; for paste-ready code call get_item_source instead.",
			"page": "https://three.ws/mcp-tools/mcp-studio/get_catalog_item"
		},
		{
			"name": "get_item_source",
			"server": "mcp-studio",
			"title": "Get paste-ready source for a catalog item",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you are ready to put a catalog item on a page or in an app; call get_catalog_item first if you still need its license or metadata.",
			"page": "https://three.ws/mcp-tools/mcp-studio/get_item_source"
		},
		{
			"name": "search_docs",
			"server": "mcp-studio",
			"title": "Search the three.ws documentation",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before guessing at an API or a flow; to browse ready-made 3D assets call search_catalog instead.",
			"page": "https://three.ws/mcp-tools/mcp-studio/search_docs"
		},
		{
			"name": "create_agent_persona",
			"server": "mcp-studio",
			"title": "Save a rigged model as a living, persistent agent body",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this once a rigged model should become a recurring character the assistant speaks through.",
			"page": "https://three.ws/mcp-tools/mcp-studio/create_agent_persona"
		},
		{
			"name": "get_agent_persona",
			"server": "mcp-studio",
			"title": "Reload a persona by id (continuity across sessions)",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a conversation starts and the user returns to a named agent.",
			"page": "https://three.ws/mcp-tools/mcp-studio/get_agent_persona"
		},
		{
			"name": "persona_say",
			"server": "mcp-studio",
			"title": "Speak a reply through a persona: lip-sync + emotion + gesture",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this whenever the persona speaks, on every turn, with the persona_id from create_agent_persona or get_agent_persona.",
			"page": "https://three.ws/mcp-tools/mcp-studio/persona_say"
		},
		{
			"name": "forge_free",
			"server": "mcp-chatgpt",
			"title": "Generate a 3D model from text",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a new 3D object, character or creature from a text description.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/forge_free"
		},
		{
			"name": "text_to_avatar",
			"server": "mcp-chatgpt",
			"title": "Generate a 3D avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a character or figure generated from a text description or a reference image.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/text_to_avatar"
		},
		{
			"name": "mesh_forge",
			"server": "mcp-chatgpt",
			"title": "Generate a 3D mesh (art-directed)",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you want a higher quality mesh from a rough prompt or reference image, with the prompt refined for you first.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/mesh_forge"
		},
		{
			"name": "rig_mesh",
			"server": "mcp-chatgpt",
			"title": "Rig a 3D model for animation",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you already have a GLB and want it rigged so it can be posed and animated.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/rig_mesh"
		},
		{
			"name": "forge_avatar",
			"server": "mcp-chatgpt",
			"title": "Generate a rigged, animation-ready avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a posable, animation-ready character in one step instead of generating then rigging.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/forge_avatar"
		},
		{
			"name": "refine_model",
			"server": "mcp-chatgpt",
			"title": "Refine a 3D model by describing a change",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to change a model you already generated instead of starting over.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/refine_model"
		},
		{
			"name": "check_job",
			"server": "mcp-chatgpt",
			"title": "Check a pending 3D generation",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a generation tool returned status \"pending\" and you need to collect the finished model.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/check_job"
		},
		{
			"name": "look_at_model",
			"server": "mcp-chatgpt",
			"title": "Look at a 3D model",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to visually inspect a GLB for defects before you hand it to the user.",
			"page": "https://three.ws/mcp-tools/mcp-chatgpt/look_at_model"
		},
		{
			"name": "forge_free",
			"server": "mcp-grok",
			"title": "Generate a 3D model from text",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a new 3D object, character or creature from a text description.",
			"page": "https://three.ws/mcp-tools/mcp-grok/forge_free"
		},
		{
			"name": "text_to_avatar",
			"server": "mcp-grok",
			"title": "Generate a 3D avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a character or figure generated from a text description or a reference image.",
			"page": "https://three.ws/mcp-tools/mcp-grok/text_to_avatar"
		},
		{
			"name": "mesh_forge",
			"server": "mcp-grok",
			"title": "Generate a 3D mesh (art-directed)",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you want a higher quality mesh from a rough prompt or reference image, with the prompt refined for you first.",
			"page": "https://three.ws/mcp-tools/mcp-grok/mesh_forge"
		},
		{
			"name": "rig_mesh",
			"server": "mcp-grok",
			"title": "Rig a 3D model for animation",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you already have a GLB and want it rigged so it can be posed and animated.",
			"page": "https://three.ws/mcp-tools/mcp-grok/rig_mesh"
		},
		{
			"name": "forge_avatar",
			"server": "mcp-grok",
			"title": "Generate a rigged, animation-ready avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a posable, animation-ready character in one step instead of generating then rigging.",
			"page": "https://three.ws/mcp-tools/mcp-grok/forge_avatar"
		},
		{
			"name": "refine_model",
			"server": "mcp-grok",
			"title": "Refine a 3D model by describing a change",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to change a model you already generated instead of starting over.",
			"page": "https://three.ws/mcp-tools/mcp-grok/refine_model"
		},
		{
			"name": "check_job",
			"server": "mcp-grok",
			"title": "Check a pending 3D generation",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a generation tool returned status \"pending\" and you need to collect the finished model.",
			"page": "https://three.ws/mcp-tools/mcp-grok/check_job"
		},
		{
			"name": "look_at_model",
			"server": "mcp-grok",
			"title": "Look at a 3D model",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to visually inspect a GLB for defects before you hand it to the user.",
			"page": "https://three.ws/mcp-tools/mcp-grok/look_at_model"
		},
		{
			"name": "get_job",
			"server": "mcp-grok",
			"title": "Get a 3D generation job",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a generation tool returned status \"pending\" and you need its current status or the finished model.",
			"page": "https://three.ws/mcp-tools/mcp-grok/get_job"
		},
		{
			"name": "search_catalog",
			"server": "mcp-grok",
			"title": "Search the three.ws asset catalog",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before generating anything: if the catalog already has the prop or character, dropping it in is instant and free where generating one is not.",
			"page": "https://three.ws/mcp-tools/mcp-grok/search_catalog"
		},
		{
			"name": "get_catalog_item",
			"server": "mcp-grok",
			"title": "Read one catalog item",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after search_catalog to inspect one result before you embed it; for paste-ready code call get_item_source instead.",
			"page": "https://three.ws/mcp-tools/mcp-grok/get_catalog_item"
		},
		{
			"name": "get_item_source",
			"server": "mcp-grok",
			"title": "Get paste-ready source for a catalog item",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you are ready to put a catalog item on a page or in an app; call get_catalog_item first if you still need its license or metadata.",
			"page": "https://three.ws/mcp-tools/mcp-grok/get_item_source"
		},
		{
			"name": "search_docs",
			"server": "mcp-grok",
			"title": "Search the three.ws documentation",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before guessing at an API or a flow; to browse ready-made 3D assets call search_catalog instead.",
			"page": "https://three.ws/mcp-tools/mcp-grok/search_docs"
		},
		{
			"name": "create_agent_persona",
			"server": "mcp-grok",
			"title": "Save a rigged model as a living, persistent agent body",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this once a rigged model should become a recurring character the assistant speaks through.",
			"page": "https://three.ws/mcp-tools/mcp-grok/create_agent_persona"
		},
		{
			"name": "get_agent_persona",
			"server": "mcp-grok",
			"title": "Reload a persona by id (continuity across sessions)",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a conversation starts and the user returns to a named agent.",
			"page": "https://three.ws/mcp-tools/mcp-grok/get_agent_persona"
		},
		{
			"name": "persona_say",
			"server": "mcp-grok",
			"title": "Speak a reply through a persona: lip-sync + emotion + gesture",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this whenever the persona speaks, on every turn, with the persona_id from create_agent_persona or get_agent_persona.",
			"page": "https://three.ws/mcp-tools/mcp-grok/persona_say"
		},
		{
			"name": "search_tokens",
			"server": "pump-fun-mcp",
			"title": "Search Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find a coin's mint when you only know its name or ticker, then pass the mint to get_token_details or get_coin_intel.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/search_tokens"
		},
		{
			"name": "get_token_details",
			"server": "pump-fun-mcp",
			"title": "Token Details",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already have a mint and need its metadata, market cap, and curve status; for holder concentration call get_token_holders, for recent fills call get_token_trades.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_token_details"
		},
		{
			"name": "get_bonding_curve",
			"server": "pump-fun-mcp",
			"title": "Bonding Curve",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to read graduation progress or the curve spot price of a coin that has not graduated yet.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_bonding_curve"
		},
		{
			"name": "get_token_trades",
			"server": "pump-fun-mcp",
			"title": "Token Trades",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to read recent buy and sell flow on one coin; to see only large trades as they land, call pumpfun_watch_whales instead.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_token_trades"
		},
		{
			"name": "get_trending_tokens",
			"server": "pump-fun-mcp",
			"title": "Trending Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to scan the largest coins on pump.fun right now; for fresh launches call get_new_tokens, for coins that left the curve call get_graduated_tokens.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_trending_tokens"
		},
		{
			"name": "get_new_tokens",
			"server": "pump-fun-mcp",
			"title": "New Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to catch launches in their first minutes; for the largest coins by market cap call get_trending_tokens instead.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_new_tokens"
		},
		{
			"name": "get_graduated_tokens",
			"server": "pump-fun-mcp",
			"title": "Graduated Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to list coins that now trade on a PumpSwap pool, where pumpfun_quote_swap applies instead of get_bonding_curve.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_graduated_tokens"
		},
		{
			"name": "get_king_of_the_hill",
			"server": "pump-fun-mcp",
			"title": "King of the Hill",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find the coin closest to graduating among those still on the curve; for the full ranking call get_trending_tokens.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_king_of_the_hill"
		},
		{
			"name": "get_creator_profile",
			"server": "pump-fun-mcp",
			"title": "Creator Profile",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to vet a dev wallet's launch history before buying one of its coins; for its fee cash-outs call pumpfun_list_claims.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_creator_profile"
		},
		{
			"name": "get_token_holders",
			"server": "pump-fun-mcp",
			"title": "Token Holders",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check whether a few wallets control the supply before buying; for price and volume call get_token_details instead.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_token_holders"
		},
		{
			"name": "pumpfun_vanity_mint",
			"server": "pump-fun-mcp",
			"title": "Vanity Mint Keypair",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before launching a coin when its mint address should carry a recognizable prefix or suffix.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_vanity_mint"
		},
		{
			"name": "pumpfun_watch_whales",
			"server": "pump-fun-mcp",
			"title": "Watch Whale Trades",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see who is moving size on a coin right now; for the full recent tape call get_token_trades.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_watch_whales"
		},
		{
			"name": "pumpfun_list_claims",
			"server": "pump-fun-mcp",
			"title": "List Creator Fee Claims",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit how much a creator has already cashed out; for only the claims inside a recent window call pumpfun_watch_claims.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_list_claims"
		},
		{
			"name": "pumpfun_watch_claims",
			"server": "pump-fun-mcp",
			"title": "Watch Creator Fee Claims",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for batch collection after a delay; for a creator's full recent claim history call pumpfun_list_claims.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_watch_claims"
		},
		{
			"name": "pumpfun_first_claims",
			"server": "pump-fun-mcp",
			"title": "First Creator Fee Claims",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to spot creators cashing out for the first time across all coins; for one creator's history call pumpfun_list_claims.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_first_claims"
		},
		{
			"name": "sns_resolve",
			"server": "pump-fun-mcp",
			"title": "Resolve .sol Domain",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a wallet is named by its .sol domain and you need the address; for the reverse direction call sns_reverseLookup.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/sns_resolve"
		},
		{
			"name": "sns_reverseLookup",
			"server": "pump-fun-mcp",
			"title": "Reverse .sol Lookup",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to label a raw wallet address with its human-readable .sol name; to go from name to address call sns_resolve.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/sns_reverseLookup"
		},
		{
			"name": "social_cashtag_sentiment",
			"server": "pump-fun-mcp",
			"title": "Cashtag Sentiment",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to score posts you have already collected; it fetches nothing itself, so pass the posts in.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/social_cashtag_sentiment"
		},
		{
			"name": "kol_leaderboard",
			"server": "pump-fun-mcp",
			"title": "KOL Leaderboard",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find which trader wallets are worth following; to see whether they hold a given coin, call get_coin_intel or get_token_holders.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/kol_leaderboard"
		},
		{
			"name": "pumpfun_quote_swap",
			"server": "pump-fun-mcp",
			"title": "Swap Quote (Read-Only)",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to size a trade on a graduated coin, or to measure its pool depth, before executing anywhere.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_quote_swap"
		},
		{
			"name": "social_x_post_impact",
			"server": "pump-fun-mcp",
			"title": "X Post Price Impact",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to measure how one X post moved a coin that is still on its bonding curve (pricing is virtual_quote_reserves / virtual_token_reserves); a graduated coin has no curve, so the call fails rather than returning a zero price.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/social_x_post_impact"
		},
		{
			"name": "get_coin_intel",
			"server": "pump-fun-mcp",
			"title": "Coin Intel",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before entering any position.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_coin_intel"
		},
		{
			"name": "get_oracle_conviction",
			"server": "pump-fun-mcp",
			"title": "Oracle Conviction",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this when you need the highest-confidence trade signal; it synthesises everything get_coin_intel exposes into one actionable score.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/get_oracle_conviction"
		},
		{
			"name": "pumpfun_upload_metadata",
			"server": "pump-fun-mcp",
			"title": "Upload Coin Metadata",
			"category": "launch",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this before launching a coin: pass the returned uri to the launch-agent endpoint or the studio launch flow.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_upload_metadata"
		},
		{
			"name": "pumpfun_bot_status",
			"server": "pump-fun-mcp",
			"title": "Indexer Status",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when search_tokens, get_graduated_tokens, get_king_of_the_hill, or get_creator_profile fail or are missing, to see whether the indexer is configured and healthy.",
			"page": "https://three.ws/mcp-tools/pump-fun-mcp/pumpfun_bot_status"
		},
		{
			"name": "setWireframe",
			"server": "chat-mcp",
			"title": "Toggle wireframe",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to see the mesh topology or check polygon density.",
			"page": "https://three.ws/mcp-tools/chat-mcp/setWireframe"
		},
		{
			"name": "setSkeleton",
			"server": "chat-mcp",
			"title": "Toggle skeleton helper",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user asks whether a model is rigged or wants to see its bones.",
			"page": "https://three.ws/mcp-tools/chat-mcp/setSkeleton"
		},
		{
			"name": "setGrid",
			"server": "chat-mcp",
			"title": "Toggle grid",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user needs a sense of scale or orientation for the model.",
			"page": "https://three.ws/mcp-tools/chat-mcp/setGrid"
		},
		{
			"name": "setAutoRotate",
			"server": "chat-mcp",
			"title": "Toggle auto-rotate",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to show a model from every side, or to stop the motion before a screenshot.",
			"page": "https://three.ws/mcp-tools/chat-mcp/setAutoRotate"
		},
		{
			"name": "setBgColor",
			"server": "chat-mcp",
			"title": "Set background color",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants a specific backdrop, for contrast or to match a brand.",
			"page": "https://three.ws/mcp-tools/chat-mcp/setBgColor"
		},
		{
			"name": "setTransparentBg",
			"server": "chat-mcp",
			"title": "Toggle transparent background",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before a screenshot that will be composited over other content.",
			"page": "https://three.ws/mcp-tools/chat-mcp/setTransparentBg"
		},
		{
			"name": "setEnvironment",
			"server": "chat-mcp",
			"title": "Set lighting environment",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to see how materials react to different light.",
			"page": "https://three.ws/mcp-tools/chat-mcp/setEnvironment"
		},
		{
			"name": "takeScreenshot",
			"server": "chat-mcp",
			"title": "Take screenshot",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user wants an image of the model as it looks now.",
			"page": "https://three.ws/mcp-tools/chat-mcp/takeScreenshot"
		},
		{
			"name": "loadModel",
			"server": "chat-mcp",
			"title": "Load model",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user gives a model link or asks to view a different model.",
			"page": "https://three.ws/mcp-tools/chat-mcp/loadModel"
		},
		{
			"name": "runValidation",
			"server": "chat-mcp",
			"title": "Validate model",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a model renders wrong or before publishing it, to list spec errors and warnings.",
			"page": "https://three.ws/mcp-tools/chat-mcp/runValidation"
		},
		{
			"name": "showMaterialEditor",
			"server": "chat-mcp",
			"title": "Open material editor",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the user wants to adjust colors, roughness or metalness by hand.",
			"page": "https://three.ws/mcp-tools/chat-mcp/showMaterialEditor"
		},
		{
			"name": "text_to_avatar",
			"server": "three-ws-mcp-server",
			"title": "Text → 3D avatar ($0.15)",
			"category": "utility",
			"safety": "write",
			"price": 0.15,
			"whenToUse": "Use this when you want the Hunyuan-3D lane specifically; for an avatar that is guaranteed to come back rigged and animation-ready, call forge_avatar instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/text_to_avatar"
		},
		{
			"name": "mesh_forge",
			"server": "three-ws-mcp-server",
			"title": "Text → 3D mesh ($0.25)",
			"category": "utility",
			"safety": "write",
			"price": 0.25,
			"whenToUse": "Use this when you have reference images or want the directed text chain; for a free text-only draft, call forge_free instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/mesh_forge"
		},
		{
			"name": "forge_free",
			"server": "three-ws-mcp-server",
			"title": "Free text → 3D (TRELLIS)",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this for a text-only model at no cost; switch to mesh_forge for photo input or forge_avatar for a rigged character in one call.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/forge_free"
		},
		{
			"name": "rig_mesh",
			"server": "three-ws-mcp-server",
			"title": "Rig 3D mesh ($0.20)",
			"category": "utility",
			"safety": "write",
			"price": 0.2,
			"whenToUse": "Use this after mesh_forge or forge_free to rig the mesh they return; forge_avatar does both steps in one call.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/rig_mesh"
		},
		{
			"name": "forge_avatar",
			"server": "three-ws-mcp-server",
			"title": "Text/Image → rigged avatar ($0.45)",
			"category": "utility",
			"safety": "write",
			"price": 0.45,
			"whenToUse": "Use this when you need a character that can be posed and animated; for props and other static objects, call forge_free or mesh_forge instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/forge_avatar"
		},
		{
			"name": "refine_model",
			"server": "three-ws-mcp-server",
			"title": "Refine a 3D model by describing a change",
			"category": "utility",
			"safety": "write",
			"price": 0.25,
			"whenToUse": "Use this when a generated model is close but its shape needs a specific change; to change only the surface material without touching the mesh, call restyle_material instead, which costs less.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/refine_model"
		},
		{
			"name": "restyle_material",
			"server": "three-ws-mcp-server",
			"title": "Restyle a 3D model's materials: AI PBR restyle or seeded colorway variants",
			"category": "utility",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use this when only the look of the surface should change; to change the shape itself, call refine_model instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/restyle_material"
		},
		{
			"name": "ens_sns_resolve",
			"server": "three-ws-mcp-server",
			"title": "ENS + SNS resolve ($0.0005)",
			"category": "utility",
			"safety": "read",
			"price": 0.0005,
			"whenToUse": "Use this to turn a .sol or .eth name into a wallet address before looking that wallet up or paying it.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/ens_sns_resolve"
		},
		{
			"name": "agent_delegate_action",
			"server": "three-ws-mcp-server",
			"title": "Agent delegate action ($0.01)",
			"category": "utility",
			"safety": "write",
			"price": 0.01,
			"whenToUse": "Use this for agent-to-agent collaboration when you already know which agent should answer; to find and pay an agent by task fit with a provenance receipt, use agent_hire_discover and then agent_hire instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/agent_delegate_action"
		},
		{
			"name": "agent_hire_discover",
			"server": "three-ws-mcp-server",
			"title": "Agent hire: discover ($0.01)",
			"category": "utility",
			"safety": "read",
			"price": 0.01,
			"whenToUse": "Use this before agent_hire to pick a candidate and see the exact price it will settle.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/agent_hire_discover"
		},
		{
			"name": "agent_hire",
			"server": "three-ws-mcp-server",
			"title": "Agent hire ($0.05)",
			"category": "utility",
			"safety": "write",
			"price": 0.05,
			"whenToUse": "Use this after agent_hire_discover, once you have chosen an agent and accept its quoted price.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/agent_hire"
		},
		{
			"name": "sentiment_pulse",
			"server": "three-ws-mcp-server",
			"title": "Sentiment pulse ($0.003)",
			"category": "utility",
			"safety": "read",
			"price": 0.003,
			"whenToUse": "Use this to weigh community mood against the price and holder data from pump_snapshot.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/sentiment_pulse"
		},
		{
			"name": "get_pose_seed",
			"server": "three-ws-mcp-server",
			"title": "Pose seed ($0.001)",
			"category": "utility",
			"safety": "read",
			"price": 0.001,
			"whenToUse": "Use this to turn a pose description such as \"warrior pose\" or \"waving\" into exact joint rotations and a pose-studio link.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/get_pose_seed"
		},
		{
			"name": "pump_snapshot",
			"server": "three-ws-mcp-server",
			"title": "Pump.fun snapshot ($0.005)",
			"category": "utility",
			"safety": "read",
			"price": 0.005,
			"whenToUse": "Use this to check a token's price, volume, and holder concentration before trading or reporting on it; for community mood, call sentiment_pulse.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/pump_snapshot"
		},
		{
			"name": "agent_reputation",
			"server": "three-ws-mcp-server",
			"title": "Agent reputation ($0.01)",
			"category": "utility",
			"safety": "read",
			"price": 0.01,
			"whenToUse": "Use this to vet an agent's on-chain track record before hiring or paying it; agent_hire_discover already folds this score into its ranking.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/agent_reputation"
		},
		{
			"name": "vanity_grinder",
			"server": "three-ws-mcp-server",
			"title": "Solana vanity grinder ($0.05)",
			"category": "utility",
			"safety": "read",
			"price": 0.05,
			"whenToUse": "Use this to grind a fresh address with a short pattern (about 3 characters is the practical reach); for longer brandable addresses already in stock, call vanity_premium instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/vanity_grinder"
		},
		{
			"name": "vanity_premium",
			"server": "three-ws-mcp-server",
			"title": "Premium vanity inventory (browse)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to browse long brandable addresses already in stock; for a fresh grind of up to 3 characters, use the vanity_grinder tool instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/vanity_premium"
		},
		{
			"name": "agenc_list_tasks",
			"server": "three-ws-mcp-server",
			"title": "AgenC list tasks ($0.001)",
			"category": "utility",
			"safety": "read",
			"price": 0.001,
			"whenToUse": "Use this first to enumerate a wallet's AgenC tasks, then pass a task PDA to agenc_get_task for its full lifecycle timeline.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/agenc_list_tasks"
		},
		{
			"name": "agenc_get_task",
			"server": "three-ws-mcp-server",
			"title": "AgenC get task ($0.001)",
			"category": "utility",
			"safety": "read",
			"price": 0.001,
			"whenToUse": "Use this when you have one task's PDA (or its creator and id) and need its current state and history; to find tasks in the first place, call agenc_list_tasks.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/agenc_get_task"
		},
		{
			"name": "agenc_get_agent",
			"server": "three-ws-mcp-server",
			"title": "AgenC get agent ($0.001)",
			"category": "utility",
			"safety": "read",
			"price": 0.001,
			"whenToUse": "Use this to check an AgenC agent's authority, stake, and reputation before assigning it work; to see the tasks a wallet created, call agenc_list_tasks instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/agenc_get_agent"
		},
		{
			"name": "aixbt_intel",
			"server": "three-ws-mcp-server",
			"title": "aixbt intel ($0.01)",
			"category": "utility",
			"safety": "read",
			"price": 0.01,
			"whenToUse": "Use this to see which narratives are forming right now; for a ranked list of projects with market metrics, call aixbt_projects instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/aixbt_intel"
		},
		{
			"name": "aixbt_projects",
			"server": "three-ws-mcp-server",
			"title": "aixbt projects ($0.01)",
			"category": "utility",
			"safety": "read",
			"price": 0.01,
			"whenToUse": "Use this to find which projects are gaining momentum; for the underlying narrative items, call aixbt_intel instead.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/aixbt_projects"
		},
		{
			"name": "crypto_news",
			"server": "three-ws-mcp-server",
			"title": "Crypto news (live, 197 feeds)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for raw, filterable headlines; for the day grouped into stories use crypto_news_digest, and for coverage older than a few days use crypto_news_archive.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/crypto_news"
		},
		{
			"name": "news_resolve",
			"server": "three-ws-mcp-server",
			"title": "Resolve a news article (excerpt, analysis, trading read)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have a crypto news URL and need its content or a trading read, including for blocked or paywalled pages.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/news_resolve"
		},
		{
			"name": "crypto_news_digest",
			"server": "three-ws-mcp-server",
			"title": "Crypto news digest (clustered)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first for \"what happened in crypto today\".",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/crypto_news_digest"
		},
		{
			"name": "crypto_news_archive",
			"server": "three-ws-mcp-server",
			"title": "Crypto news archive (660k+, 2017→)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for coverage older than a few days; for today's coverage use crypto_news or crypto_news_digest.",
			"page": "https://three.ws/mcp-tools/three-ws-mcp-server/crypto_news_archive"
		},
		{
			"name": "get_trending_agents",
			"server": "activity-mcp",
			"title": "Trending agents by activity",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find which agents people are actually talking to right now; for coins call get_trending_coins, for the raw event stream call get_feed_events.",
			"page": "https://three.ws/mcp-tools/activity-mcp/get_trending_agents"
		},
		{
			"name": "get_trending_coins",
			"server": "activity-mcp",
			"title": "Trending coins by Oracle conviction",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see which coins the Oracle rates highest right now; for the agents ranking call get_trending_agents.",
			"page": "https://three.ws/mcp-tools/activity-mcp/get_trending_coins"
		},
		{
			"name": "get_holder_leaderboard",
			"server": "activity-mcp",
			"title": "$THREE holder leaderboard",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to look up where a wallet ranks among $THREE holders or to page through the board; for the tier thresholds alone call get_tier_info.",
			"page": "https://three.ws/mcp-tools/activity-mcp/get_holder_leaderboard"
		},
		{
			"name": "get_tier_info",
			"server": "activity-mcp",
			"title": "$THREE holder tier ladder",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to explain what a holder's tier means, to tell a holder how far they are from the next band, or to render the leaderboard legend.",
			"page": "https://three.ws/mcp-tools/activity-mcp/get_tier_info"
		},
		{
			"name": "get_feed_events",
			"server": "activity-mcp",
			"title": "Site-wide activity feed",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it for situational awareness, what agents, coins, and players are active right now.",
			"page": "https://three.ws/mcp-tools/activity-mcp/get_feed_events"
		},
		{
			"name": "list_tasks",
			"server": "agenc-mcp",
			"title": "List AgenC tasks by creator",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see the work a specific creator has open or in-flight.",
			"page": "https://three.ws/mcp-tools/agenc-mcp/list_tasks"
		},
		{
			"name": "get_task",
			"server": "agenc-mcp",
			"title": "Get AgenC task detail + lifecycle",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to inspect one task before claiming or funding it; to list every task a wallet created call list_tasks.",
			"page": "https://three.ws/mcp-tools/agenc-mcp/get_task"
		},
		{
			"name": "get_agent",
			"server": "agenc-mcp",
			"title": "Get AgenC agent registry entry",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to verify another agent before coordinating with it, confirm it is registered, active, and what it claims to do.",
			"page": "https://three.ws/mcp-tools/agenc-mcp/get_agent"
		},
		{
			"name": "link_agent",
			"server": "agenc-mcp",
			"title": "Link a three.ws identity to its AgenC agent id",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you know a three.ws handle, ERC-8004 id, or MPL-Core asset and need the matching AgenC id; if you already have the AgenC id or PDA call get_agent instead.",
			"page": "https://three.ws/mcp-tools/agenc-mcp/link_agent"
		},
		{
			"name": "query_x402_services",
			"server": "agenc-mcp",
			"title": "Query x402 services as AgenC tasks",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to discover paid work an agent can earn by calling, the x402 complement to the on-chain task marketplace.",
			"page": "https://three.ws/mcp-tools/agenc-mcp/query_x402_services"
		},
		{
			"name": "trader_getting_started",
			"server": "agent-trader-mcp",
			"title": "Agent trader getting started",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when you have not armed an agent before.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/trader_getting_started"
		},
		{
			"name": "agent_arm",
			"server": "agent-trader-mcp",
			"title": "Arm an agent on the Oracle",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants an agent to act on Oracle calls; read agent_guardrails first.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/agent_arm"
		},
		{
			"name": "agent_disarm",
			"server": "agent-trader-mcp",
			"title": "Disarm an agent (kill switch)",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when something looks wrong or the owner wants the agent to stop buying.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/agent_disarm"
		},
		{
			"name": "agent_status",
			"server": "agent-trader-mcp",
			"title": "Agent watch status",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to confirm an arm or disarm took effect.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/agent_status"
		},
		{
			"name": "agent_actions",
			"server": "agent-trader-mcp",
			"title": "Agent actions",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit an agent or to see why it did or did not buy.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/agent_actions"
		},
		{
			"name": "agent_performance",
			"server": "agent-trader-mcp",
			"title": "Agent track record",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before moving an agent from simulate to live.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/agent_performance"
		},
		{
			"name": "agent_positions",
			"server": "agent-trader-mcp",
			"title": "Agent open positions",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see exposure before changing guardrails or disarming.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/agent_positions"
		},
		{
			"name": "agent_guardrails",
			"server": "agent-trader-mcp",
			"title": "Agent spend guardrails",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before arming, and to tighten limits or flip the kill switch.",
			"page": "https://three.ws/mcp-tools/agent-trader-mcp/agent_guardrails"
		},
		{
			"name": "create_payment_session",
			"server": "agentcore-payments-mcp",
			"title": "Create a funded agent payment session",
			"category": "x402",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this first to give an agent a capped spending budget; then price each call with quote_session_payment and settle it with pay_with_session.",
			"page": "https://three.ws/mcp-tools/agentcore-payments-mcp/create_payment_session"
		},
		{
			"name": "quote_session_payment",
			"server": "agentcore-payments-mcp",
			"title": "Quote an x402 payment against a payment session (no funds move)",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before every pay_with_session call to see the price and whether the session can cover it.",
			"page": "https://three.ws/mcp-tools/agentcore-payments-mcp/quote_session_payment"
		},
		{
			"name": "pay_with_session",
			"server": "agentcore-payments-mcp",
			"title": "Pay an x402 endpoint via a payment session",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after quote_session_payment returns a price the user has explicitly approved; it moves real USDC.",
			"page": "https://three.ws/mcp-tools/agentcore-payments-mcp/pay_with_session"
		},
		{
			"name": "check_payment_session",
			"server": "agentcore-payments-mcp",
			"title": "Check a payment session's budget and status",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see how much budget one session has left before paying; for every session at once call list_payment_sessions.",
			"page": "https://three.ws/mcp-tools/agentcore-payments-mcp/check_payment_session"
		},
		{
			"name": "list_payment_sessions",
			"server": "agentcore-payments-mcp",
			"title": "List payment sessions and spending stats",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit all your sessions and total spend; for one session's detail and executions call check_payment_session.",
			"page": "https://three.ws/mcp-tools/agentcore-payments-mcp/list_payment_sessions"
		},
		{
			"name": "cancel_payment_session",
			"server": "agentcore-payments-mcp",
			"title": "Cancel a payment session and refund unused budget",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when an agent no longer needs its budget, to stop further spending and reclaim the rest.",
			"page": "https://three.ws/mcp-tools/agentcore-payments-mcp/cancel_payment_session"
		},
		{
			"name": "agora_board",
			"server": "agora-mcp",
			"title": "Browse the Agora job board",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find work to claim; once you pick a task, call agora_claim_task with its taskPda.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_board"
		},
		{
			"name": "agora_pulse",
			"server": "agora-mcp",
			"title": "Read the Agora economy pulse",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to gauge how busy the economy is before deciding to register or post work.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_pulse"
		},
		{
			"name": "agora_citizens",
			"server": "agora-mcp",
			"title": "List Agora citizens",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to scout collaborators, find a Verifier for your proof, or see who's earning.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_citizens"
		},
		{
			"name": "agora_passport",
			"server": "agora-mcp",
			"title": "Get one Agora citizen passport",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to vet one citizen before hiring it or verifying its work; to browse many citizens call agora_citizens.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_passport"
		},
		{
			"name": "agora_professions",
			"server": "agora-mcp",
			"title": "List Agora professions (the capability bit map)",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to read a citizen's `capabilityBits` or to set a task's `requiredCapabilities` when posting work.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_professions"
		},
		{
			"name": "agora_quote_register",
			"server": "agora-mcp",
			"title": "Quote an Agora registration (no funds move)",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before agora_register so the user sees the stake and the signing wallet before anything is signed.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_quote_register"
		},
		{
			"name": "agora_register",
			"server": "agora-mcp",
			"title": "Register as an Agora citizen (on-chain)",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after agora_quote_register has been shown to the user and they said yes; registering is the first step before claiming or posting work.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_register"
		},
		{
			"name": "agora_claim_task",
			"server": "agora-mcp",
			"title": "Claim an open Agora task (on-chain)",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after agora_board shows a task your professions qualify for; finish it with agora_complete_task.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_claim_task"
		},
		{
			"name": "agora_complete_task",
			"server": "agora-mcp",
			"title": "Complete an Agora task with a proof (on-chain)",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after you have done the work for a task you claimed with agora_claim_task, to submit the proof and collect the reward.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_complete_task"
		},
		{
			"name": "agora_quote_task",
			"server": "agora-mcp",
			"title": "Quote an Agora bounty (no funds move)",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before agora_post_task so the user sees exactly what will be locked in escrow.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_quote_task"
		},
		{
			"name": "agora_post_task",
			"server": "agora-mcp",
			"title": "Post a bounty to the Agora board (on-chain escrow)",
			"category": "marketplace",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after agora_quote_task has been shown to the user and they said yes, to publish paid work for other citizens.",
			"page": "https://three.ws/mcp-tools/agora-mcp/agora_post_task"
		},
		{
			"name": "list_alert_rules",
			"server": "alerts-mcp",
			"title": "List my pump.fun alert rules",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit what an agent is watching before creating or editing rules.",
			"page": "https://three.ws/mcp-tools/alerts-mcp/list_alert_rules"
		},
		{
			"name": "create_alert_rule",
			"server": "alerts-mcp",
			"title": "Create a pump.fun alert rule",
			"category": "intelligence",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to have three.ws watch a coin or agent around the clock; to change an existing rule call update_alert_rule instead of adding a duplicate.",
			"page": "https://three.ws/mcp-tools/alerts-mcp/create_alert_rule"
		},
		{
			"name": "update_alert_rule",
			"server": "alerts-mcp",
			"title": "Update a pump.fun alert rule",
			"category": "intelligence",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to pause, retune, or re-route an existing rule; unlike delete_alert_rule it keeps the rule and its history.",
			"page": "https://three.ws/mcp-tools/alerts-mcp/update_alert_rule"
		},
		{
			"name": "delete_alert_rule",
			"server": "alerts-mcp",
			"title": "Delete a pump.fun alert rule",
			"category": "intelligence",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when a rule is no longer wanted at all; to pause it without losing it, prefer update_alert_rule with enabled:false.",
			"page": "https://three.ws/mcp-tools/alerts-mcp/delete_alert_rule"
		},
		{
			"name": "get_alert_history",
			"server": "alerts-mcp",
			"title": "Read fired pump.fun alert history",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to review what fired; pair it with list_alert_rules, whose `recent_deliveries` shows per-channel send outcomes, to see both what fired and how it was delivered.",
			"page": "https://three.ws/mcp-tools/alerts-mcp/get_alert_history"
		},
		{
			"name": "qwen_chat",
			"server": "alibaba-cloud-mcp",
			"title": "Qwen Chat",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want a written answer from Qwen; for vectors to search or cluster texts call qwen_embed instead.",
			"page": "https://three.ws/mcp-tools/alibaba-cloud-mcp/qwen_chat"
		},
		{
			"name": "qwen_embed",
			"server": "alibaba-cloud-mcp",
			"title": "Qwen Text Embeddings",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to index or compare texts by meaning; it returns vectors, not prose, so call qwen_chat when you need a written reply.",
			"page": "https://three.ws/mcp-tools/alibaba-cloud-mcp/qwen_embed"
		},
		{
			"name": "qwen_list_models",
			"server": "alibaba-cloud-mcp",
			"title": "List DashScope Models",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to confirm a model id exists on the account before passing it to qwen_chat or qwen_embed.",
			"page": "https://three.ws/mcp-tools/alibaba-cloud-mcp/qwen_list_models"
		},
		{
			"name": "build_assistant_widget",
			"server": "assistant-mcp",
			"title": "Build a paste-ready three.ws assistant widget embed",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after list_assistant_options has shown you every avatar, background, mode and attribute you can set, to get the embed code for a website.",
			"page": "https://three.ws/mcp-tools/assistant-mcp/build_assistant_widget"
		},
		{
			"name": "list_assistant_options",
			"server": "assistant-mcp",
			"title": "List every three.ws assistant widget option",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before build_assistant_widget to know the vocabulary.",
			"page": "https://three.ws/mcp-tools/assistant-mcp/list_assistant_options"
		},
		{
			"name": "text_to_speech",
			"server": "audio-mcp",
			"title": "Text to speech",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when an avatar needs a voice line you can play; to get the lipsync track for that line in the same call, use audio_to_face with `text` instead.",
			"page": "https://three.ws/mcp-tools/audio-mcp/text_to_speech"
		},
		{
			"name": "speech_to_text",
			"server": "audio-mcp",
			"title": "Speech to text",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to turn a user's recorded voice into text an agent can act on; to go the other way, call text_to_speech.",
			"page": "https://three.ws/mcp-tools/audio-mcp/speech_to_text"
		},
		{
			"name": "audio_to_face",
			"server": "audio-mcp",
			"title": "Audio to face (lipsync)",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when an avatar has to mouth a spoken line; for plain audio with no face animation, call text_to_speech instead.",
			"page": "https://three.ws/mcp-tools/audio-mcp/audio_to_face"
		},
		{
			"name": "motion_capture_clips",
			"server": "audio-mcp",
			"title": "List motion-capture clips",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first to find a recorded face, pose, hand, or VMC clip, then pass its id to motion_capture_clip for the frames.",
			"page": "https://three.ws/mcp-tools/audio-mcp/motion_capture_clips"
		},
		{
			"name": "motion_capture_clip",
			"server": "audio-mcp",
			"title": "Get a motion-capture clip",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to drive an avatar from a clip discovered via motion_capture_clips.",
			"page": "https://three.ws/mcp-tools/audio-mcp/motion_capture_clip"
		},
		{
			"name": "get_autopilot_config",
			"server": "autopilot-mcp",
			"title": "Get autopilot config",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first, before proposing or executing.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/get_autopilot_config"
		},
		{
			"name": "set_autopilot_config",
			"server": "autopilot-mcp",
			"title": "Set autopilot config",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants to grant, revoke, or cap what autopilot may do; read the current values first with get_autopilot_config.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/set_autopilot_config"
		},
		{
			"name": "generate_proposals",
			"server": "autopilot-mcp",
			"title": "Generate autopilot proposals",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to have the agent suggest its next actions from what it remembers; review the results with list_proposals before executing any.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/generate_proposals"
		},
		{
			"name": "list_proposals",
			"server": "autopilot-mcp",
			"title": "List autopilot proposals",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find what is actionable (filter by status) and to get the proposal ids the other autopilot tools need.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/list_proposals"
		},
		{
			"name": "dryrun_proposal",
			"server": "autopilot-mcp",
			"title": "Dry-run an autopilot proposal",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before every execute_proposal, and always before an irreversible wallet_transfer.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/dryrun_proposal"
		},
		{
			"name": "adjust_proposal",
			"server": "autopilot-mcp",
			"title": "Adjust a pending autopilot proposal",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a proposal is right in kind but wrong in detail; adjust it, run dryrun_proposal again, then execute_proposal.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/adjust_proposal"
		},
		{
			"name": "execute_proposal",
			"server": "autopilot-mcp",
			"title": "Execute an autopilot proposal (moves real value)",
			"category": "runs",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after dryrun_proposal shows no blocked check and, for a wallet_transfer, after the owner has explicitly confirmed it.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/execute_proposal"
		},
		{
			"name": "dismiss_proposal",
			"server": "autopilot-mcp",
			"title": "Dismiss a pending autopilot proposal",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner rejects a proposal, so the agent stops suggesting it; to reverse something already executed call undo_action instead.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/dismiss_proposal"
		},
		{
			"name": "undo_action",
			"server": "autopilot-mcp",
			"title": "Undo a reversible autopilot action",
			"category": "runs",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants a reversible executed action taken back; to reject a proposal that never ran call dismiss_proposal.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/undo_action"
		},
		{
			"name": "list_autopilot_activity",
			"server": "autopilot-mcp",
			"title": "List autopilot activity (signed receipts)",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to audit what the agent did and why.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/list_autopilot_activity"
		},
		{
			"name": "compute_trust",
			"server": "autopilot-mcp",
			"title": "Compute autopilot trust level",
			"category": "runs",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to tell the owner how much autonomy the agent has earned; for the full permission model call get_autopilot_config.",
			"page": "https://three.ws/mcp-tools/autopilot-mcp/compute_trust"
		},
		{
			"name": "inspect_glb",
			"server": "avatar-agent-mcp",
			"title": "Inspect a GLB / glTF 3D model",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see what a GLB contains and how heavy it is; to check it against the glTF spec, call validate_glb instead.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/inspect_glb"
		},
		{
			"name": "validate_glb",
			"server": "avatar-agent-mcp",
			"title": "Validate a GLB / glTF against the Khronos spec",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find out why a GLB fails to load or renders wrong; for counts and file size alone, inspect_glb is lighter.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/validate_glb"
		},
		{
			"name": "optimize_glb",
			"server": "avatar-agent-mcp",
			"title": "Optimize a GLB (dedup, prune, weld, Draco)",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when inspect_glb shows a model is too large to load quickly on the web.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/optimize_glb"
		},
		{
			"name": "thumbnail_glb",
			"server": "avatar-agent-mcp",
			"title": "Render a GLB to a PNG thumbnail",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for a quick preview image of any GLB; to apply a pose, camera orbit, or facial expression, call render_avatar instead.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/thumbnail_glb"
		},
		{
			"name": "viewer_url",
			"server": "avatar-agent-mcp",
			"title": "Build a three.ws viewer URL + embed snippet",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user wants a link or iframe to an interactive 3D view; for a static image, call thumbnail_glb or render_avatar instead.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/viewer_url"
		},
		{
			"name": "list_avatars",
			"server": "avatar-agent-mcp",
			"title": "List three.ws default avatars + accessories",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first to pick a preset or accessory id for spawn_avatar and dress_avatar.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/list_avatars"
		},
		{
			"name": "list_animations",
			"server": "avatar-agent-mcp",
			"title": "List three.ws pose presets + animation slots",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to get the ids to pass as posePresetId in render_avatar.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/list_animations"
		},
		{
			"name": "spawn_avatar",
			"server": "avatar-agent-mcp",
			"title": "Spawn a 3D avatar session",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Call this first: dress_avatar, viewer_url, and speak all build on the session it returns.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/spawn_avatar"
		},
		{
			"name": "dress_avatar",
			"server": "avatar-agent-mcp",
			"title": "Apply accessories + pose to a spawned avatar",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after spawn_avatar to change what a session wears or how it poses; for a still image of the result, call render_avatar with the same sessionId.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/dress_avatar"
		},
		{
			"name": "render_avatar",
			"server": "avatar-agent-mcp",
			"title": "Render a posed avatar (pose + camera + expression)",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you need a posed or expressive still image; for a quick neutral thumbnail of any GLB, call thumbnail_glb instead.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/render_avatar"
		},
		{
			"name": "generate_avatar",
			"server": "avatar-agent-mcp",
			"title": "Generate a 3D avatar (Replicate text-to-3D)",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when no existing GLB fits and you need a new model from a description or photo; to start from a stock body or a GLB you already have, call spawn_avatar instead.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/generate_avatar"
		},
		{
			"name": "speak",
			"server": "avatar-agent-mcp",
			"title": "Avatar speaks (TTS)",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a spawned avatar session should say a line out loud.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/speak"
		},
		{
			"name": "wallet_create",
			"server": "avatar-agent-mcp",
			"title": "Create a Solana wallet (optionally vanity-grinded)",
			"category": "wallet",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when an avatar needs its own fresh Solana address; it moves no funds and touches no chain.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/wallet_create"
		},
		{
			"name": "wallet_balance",
			"server": "avatar-agent-mcp",
			"title": "Read Solana wallet balances (SOL + SPL tokens)",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check that a wallet holds enough SOL before previewing a send, buy, or launch.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/wallet_balance"
		},
		{
			"name": "wallet_send_preview",
			"server": "avatar-agent-mcp",
			"title": "Preview a SOL send (no funds move)",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before every wallet_send: show the preview to the user and get a clear yes before calling wallet_send with the returned preview_id.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/wallet_send_preview"
		},
		{
			"name": "wallet_send",
			"server": "avatar-agent-mcp",
			"title": "Send SOL on Solana mainnet",
			"category": "wallet",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after wallet_send_preview has been shown to the user and they said yes, and never without that yes.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/wallet_send"
		},
		{
			"name": "pump_snapshot",
			"server": "avatar-agent-mcp",
			"title": "Live pump.fun / Solana token snapshot",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check a token's price, liquidity, and holder concentration before quoting a buy with pump_buy_quote.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/pump_snapshot"
		},
		{
			"name": "pump_buy_quote",
			"server": "avatar-agent-mcp",
			"title": "Quote a token buy via Jupiter (no funds move)",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before every pump_buy: show the quote to the user, get a clear yes, then call pump_buy with the returned quote_id and the same arguments.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/pump_buy_quote"
		},
		{
			"name": "pump_buy",
			"server": "avatar-agent-mcp",
			"title": "Buy a Solana token via Jupiter (direct or Jito-bundled)",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after pump_buy_quote has been shown to the user and they said yes, and never without that yes.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/pump_buy"
		},
		{
			"name": "pump_launch_preview",
			"server": "avatar-agent-mcp",
			"title": "Preview a coin launch (no funds move)",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before every pump_launch: show the preview to the user, get a clear yes, then call pump_launch with the returned preview_id and the same arguments.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/pump_launch_preview"
		},
		{
			"name": "pump_launch",
			"server": "avatar-agent-mcp",
			"title": "Atomic pump.fun launch (Jito bundle, separate funder/creator)",
			"category": "launch",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after pump_launch_preview has been shown to the user and they said yes, and never without that yes.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/pump_launch"
		},
		{
			"name": "pump_collect_preview",
			"server": "avatar-agent-mcp",
			"title": "Preview a creator-fee collection (no funds move)",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before every pump_collect_fees: show the preview to the user, get a clear yes, then call pump_collect_fees with the returned preview_id and the same arguments.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/pump_collect_preview"
		},
		{
			"name": "pump_collect_fees",
			"server": "avatar-agent-mcp",
			"title": "Atomic pump.fun creator-fee collection (Jito bundle)",
			"category": "launch",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Call this after pump_collect_preview has been shown to the user and they said yes, and never without that yes.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/pump_collect_fees"
		},
		{
			"name": "ens_sns_resolve",
			"server": "avatar-agent-mcp",
			"title": "Resolve ENS + SNS names to addresses",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to turn a .sol or .eth name into a wallet address before checking its balance or previewing a send to it.",
			"page": "https://three.ws/mcp-tools/avatar-agent-mcp/ens_sns_resolve"
		},
		{
			"name": "get_billing_summary",
			"server": "billing-mcp",
			"title": "My plan, quotas, and current usage",
			"category": "billing",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before a heavy job to check how much of the plan is left; for what you were charged call query_usage.",
			"page": "https://three.ws/mcp-tools/billing-mcp/get_billing_summary"
		},
		{
			"name": "query_usage",
			"server": "billing-mcp",
			"title": "My metered usage / invoice statement for a period",
			"category": "billing",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to explain what a period's charges were for; for one charge's itemized receipt call get_receipt.",
			"page": "https://three.ws/mcp-tools/billing-mcp/query_usage"
		},
		{
			"name": "export_billing_history",
			"server": "billing-mcp",
			"title": "Export my billing history as CSV",
			"category": "billing",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user wants a file for their records or accounting; to read the charges inline call query_usage.",
			"page": "https://three.ws/mcp-tools/billing-mcp/export_billing_history"
		},
		{
			"name": "get_receipt",
			"server": "billing-mcp",
			"title": "Get one receipt (per-charge or per-purchase)",
			"category": "billing",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to prove or itemize one specific charge or purchase; for a whole period's charges call query_usage.",
			"page": "https://three.ws/mcp-tools/billing-mcp/get_receipt"
		},
		{
			"name": "get_fee_info",
			"server": "billing-mcp",
			"title": "Current platform fee rate",
			"category": "billing",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to work out what a seller nets from a marketplace sale before quoting a price.",
			"page": "https://three.ws/mcp-tools/billing-mcp/get_fee_info"
		},
		{
			"name": "blender_info",
			"server": "blender-mcp",
			"title": "Inspect the local Blender install",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call it first when a tool fails, or to check that Blender is installed at all.",
			"page": "https://three.ws/mcp-tools/blender-mcp/blender_info"
		},
		{
			"name": "blender_scene_info",
			"server": "blender-mcp",
			"title": "Describe a 3D file with Blender",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before blender_optimize or blender_convert to see what a file contains and what is making it heavy.",
			"page": "https://three.ws/mcp-tools/blender-mcp/blender_scene_info"
		},
		{
			"name": "blender_convert",
			"server": "blender-mcp",
			"title": "Convert a 3D file between formats",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to change a file's format only; to also cut triangles and texture size for the web, call blender_optimize instead.",
			"page": "https://three.ws/mcp-tools/blender-mcp/blender_convert"
		},
		{
			"name": "blender_optimize",
			"server": "blender-mcp",
			"title": "Shrink a 3D model for delivery",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a model is too heavy to ship to a browser or phone; run blender_scene_info first to see whether triangles or textures are the problem.",
			"page": "https://three.ws/mcp-tools/blender-mcp/blender_optimize"
		},
		{
			"name": "blender_render",
			"server": "blender-mcp",
			"title": "Render a preview image of a 3D file",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use it to see a model, check a conversion, or produce a thumbnail.",
			"page": "https://three.ws/mcp-tools/blender-mcp/blender_render"
		},
		{
			"name": "blender_forge_import",
			"server": "blender-mcp",
			"title": "Generate a 3D model with three.ws and open it in Blender",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you need a new model that does not exist yet; to work on a file you already have, open it with blender_scene_info or blender_run_python instead.",
			"page": "https://three.ws/mcp-tools/blender-mcp/blender_forge_import"
		},
		{
			"name": "blender_run_python",
			"server": "blender-mcp",
			"title": "Run a Python script inside Blender",
			"category": "assets",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this for scene edits the other tools do not cover: decimating meshes, joining or renaming objects, editing armatures, baking animation, cleaning materials.",
			"page": "https://three.ws/mcp-tools/blender-mcp/blender_run_python"
		},
		{
			"name": "list_providers",
			"server": "brain-mcp",
			"title": "List LLM providers and models",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to pick a `key` for `chat`.",
			"page": "https://three.ws/mcp-tools/brain-mcp/list_providers"
		},
		{
			"name": "chat",
			"server": "brain-mcp",
			"title": "Run a chat completion",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to get a model's answer to a prompt from inside an agent workflow; call list_providers first to choose a model.",
			"page": "https://three.ws/mcp-tools/brain-mcp/chat"
		},
		{
			"name": "get_clash_state",
			"server": "clash-mcp",
			"title": "Coin Clash battle board",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see who's fighting and who's winning before enlisting or rallying.",
			"page": "https://three.ws/mcp-tools/clash-mcp/get_clash_state"
		},
		{
			"name": "get_clash_leaderboard",
			"server": "clash-mcp",
			"title": "Coin Clash leaderboard",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find the strongest armies and the heaviest hitters.",
			"page": "https://three.ws/mcp-tools/clash-mcp/get_clash_leaderboard"
		},
		{
			"name": "enlist_faction",
			"server": "clash-mcp",
			"title": "Enlist in a Coin Clash faction",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this before rally_faction to get a war pass for a coin the wallet already holds; check get_clash_state first to see which factions are fighting.",
			"page": "https://three.ws/mcp-tools/clash-mcp/enlist_faction"
		},
		{
			"name": "rally_faction",
			"server": "clash-mcp",
			"title": "Rally power for a Coin Clash faction",
			"category": "utility",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after enlist_faction, or with a token to auto-enlist, to add power to your faction while the round is live; get_clash_state shows the clock.",
			"page": "https://three.ws/mcp-tools/clash-mcp/rally_faction"
		},
		{
			"name": "concierge_ask",
			"server": "concierge-mcp",
			"title": "Ask a website's AI concierge a question",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to answer a question about a specific site or document; to put that same concierge on the site itself, call concierge_embed.",
			"page": "https://three.ws/mcp-tools/concierge-mcp/concierge_ask"
		},
		{
			"name": "concierge_embed",
			"server": "concierge-mcp",
			"title": "Generate a Concierge embed snippet for a website",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a site owner wants the Concierge on their pages; call concierge_avatars first to choose an avatar id.",
			"page": "https://three.ws/mcp-tools/concierge-mcp/concierge_embed"
		},
		{
			"name": "concierge_avatars",
			"server": "concierge-mcp",
			"title": "List available Concierge avatars",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to pick an avatar id for concierge_embed's \"avatar\" option, or skip it and omit the option to let each visitor pick their own.",
			"page": "https://three.ws/mcp-tools/concierge-mcp/concierge_avatars"
		},
		{
			"name": "list_subscriptions",
			"server": "copy-mcp",
			"title": "List my copy-trade subscriptions",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit who you copy and how aggressively before tuning a follow with update_subscription.",
			"page": "https://three.ws/mcp-tools/copy-mcp/list_subscriptions"
		},
		{
			"name": "create_subscription",
			"server": "copy-mcp",
			"title": "Follow a leader (create / update subscription)",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to start copying a leader, or to re-tune that follow by leader; to change a follow you already hold by its subscription id, call update_subscription.",
			"page": "https://three.ws/mcp-tools/copy-mcp/create_subscription"
		},
		{
			"name": "update_subscription",
			"server": "copy-mcp",
			"title": "Update a copy-trade subscription",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to pause, resume or re-size a follow you already have (ids come from list_subscriptions); to end it outright call cancel_subscription.",
			"page": "https://three.ws/mcp-tools/copy-mcp/update_subscription"
		},
		{
			"name": "cancel_subscription",
			"server": "copy-mcp",
			"title": "Stop a copy-trade subscription",
			"category": "trading",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the follow should end; to merely halt copies temporarily without ending it, call update_subscription with status:\"paused\" instead.",
			"page": "https://three.ws/mcp-tools/copy-mcp/cancel_subscription"
		},
		{
			"name": "get_executions",
			"server": "copy-mcp",
			"title": "List copy executions (intent inbox)",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see which copy intents are waiting on you, then call record_execution to mark each pending one acted or dismissed.",
			"page": "https://three.ws/mcp-tools/copy-mcp/get_executions"
		},
		{
			"name": "record_execution",
			"server": "copy-mcp",
			"title": "Record acting on a copy intent",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after you have traded (or chosen not to) on an intent from get_executions, so it leaves the pending inbox.",
			"page": "https://three.ws/mcp-tools/copy-mcp/record_execution"
		},
		{
			"name": "get_earnings",
			"server": "copy-mcp",
			"title": "Copy-trade earnings & fees owed",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see the fees you owe the leaders you copy, or to check a leader's copy track record before following them with create_subscription.",
			"page": "https://three.ws/mcp-tools/copy-mcp/get_earnings"
		},
		{
			"name": "announce",
			"server": "herald-mcp",
			"title": "Tell your human, in person",
			"category": "mail",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this for the handful of moments that deserve to interrupt someone (a long task finished, a decision is needed, something broke), not for progress chatter: the client applies an importance floor, a rate limit, quiet hours and dedupe, so noise is dropped rather than queued.",
			"page": "https://three.ws/mcp-tools/herald-mcp/announce"
		},
		{
			"name": "announce_result",
			"server": "herald-mcp",
			"title": "Report a finished task in person",
			"category": "mail",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after anything long enough that the person walked away from it, instead of announce, so the urgency matches the outcome.",
			"page": "https://three.ws/mcp-tools/herald-mcp/announce_result"
		},
		{
			"name": "check_rail",
			"server": "herald-mcp",
			"title": "Check the delivery rail",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this once when wiring an agent up, or when announce fails and you need to tell a bad key apart from an unreachable rail.",
			"page": "https://three.ws/mcp-tools/herald-mcp/check_rail"
		},
		{
			"name": "home_overview",
			"server": "home-mcp",
			"title": "Read the house: floors, rooms, lights, climate, security",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before anything else: it is the vocabulary every other tool takes its arguments in.",
			"page": "https://three.ws/mcp-tools/home-mcp/home_overview"
		},
		{
			"name": "list_entities",
			"server": "home-mcp",
			"title": "List addressable entities, filtered by domain, area or name",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before writing a `call_service` call, to get the exact entity_id and whether it is guarded; for the room-by-room picture call `home_overview` instead.",
			"page": "https://three.ws/mcp-tools/home-mcp/list_entities"
		},
		{
			"name": "list_macros",
			"server": "home-mcp",
			"title": "List the scenes and scripts this household already built",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a person asks for a mood or routine (\"bedtime\", \"movie time\") to see which macros exist, then confirm one with `preview_macro` and run it with `run_macro`.",
			"page": "https://three.ws/mcp-tools/home-mcp/list_macros"
		},
		{
			"name": "call_service",
			"server": "home-mcp",
			"title": "Call a Home Assistant service, subject to the physical-action gate",
			"category": "integrations",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this for a single device action the household has no scene for; when one of their scenes or scripts covers it, use `run_macro` instead.",
			"page": "https://three.ws/mcp-tools/home-mcp/call_service"
		},
		{
			"name": "preview_macro",
			"server": "home-mcp",
			"title": "Preview which scene a phrase would run (nothing runs)",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before run_macro to confirm what a spoken phrase would do.",
			"page": "https://three.ws/mcp-tools/home-mcp/preview_macro"
		},
		{
			"name": "run_macro",
			"server": "home-mcp",
			"title": "Resolve a phrase to one of the household's own scenes and run it",
			"category": "integrations",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after the person has confirmed the match from `preview_macro`; for one device rather than a scene, use `call_service` instead.",
			"page": "https://three.ws/mcp-tools/home-mcp/run_macro"
		},
		{
			"name": "hq_top_yields",
			"server": "hq-mcp",
			"title": "Top DeFi yields",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find where stablecoin or chain-specific yield is highest before choosing a pool.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_top_yields"
		},
		{
			"name": "hq_chain_tvl",
			"server": "hq-mcp",
			"title": "Chain TVL ranking",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to compare how much value each chain holds or to size one chain against the rest.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_chain_tvl"
		},
		{
			"name": "hq_protocol_health",
			"server": "hq-mcp",
			"title": "Protocol health scores",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to vet a DeFi protocol before depositing or to find the weakest ones.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_protocol_health"
		},
		{
			"name": "hq_funding_rates",
			"server": "hq-mcp",
			"title": "Perp funding rates",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see which assets have crowded long or short leverage.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_funding_rates"
		},
		{
			"name": "hq_liquidations",
			"server": "hq-mcp",
			"title": "Recent liquidations",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to gauge current market stress or a liquidation cascade.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_liquidations"
		},
		{
			"name": "hq_venue_spread",
			"server": "hq-mcp",
			"title": "Cross-venue spreads",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to spot arbitrage or thin liquidity across venues.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_venue_spread"
		},
		{
			"name": "hq_whale_activity",
			"server": "hq-mcp",
			"title": "Whale transfers",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to watch large-holder movement into or out of exchanges.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_whale_activity"
		},
		{
			"name": "hq_gas",
			"server": "hq-mcp",
			"title": "Gas prices",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to pick the cheapest EVM chain to transact on right now.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_gas"
		},
		{
			"name": "analyze_portfolio_risk",
			"server": "hq-mcp",
			"title": "Portfolio risk score",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check how risky a set of holdings is before rebalancing.",
			"page": "https://three.ws/mcp-tools/hq-mcp/analyze_portfolio_risk"
		},
		{
			"name": "hq_ask",
			"server": "hq-mcp",
			"title": "Ask HQ a market question",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have a plain-language market question and do not know which hq_ tool answers it.",
			"page": "https://three.ws/mcp-tools/hq-mcp/hq_ask"
		},
		{
			"name": "watsonx_chat",
			"server": "ibm-watsonx-mcp",
			"title": "Watsonx Chat",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for multi-turn conversation with chat templating; for a single raw prompt with decoding control call watsonx_generate instead.",
			"page": "https://three.ws/mcp-tools/ibm-watsonx-mcp/watsonx_chat"
		},
		{
			"name": "watsonx_forecast",
			"server": "ibm-watsonx-mcp",
			"title": "Watsonx Time-Series Forecast",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to project a numeric series forward; for text commentary on the result call watsonx_chat.",
			"page": "https://three.ws/mcp-tools/ibm-watsonx-mcp/watsonx_forecast"
		},
		{
			"name": "watsonx_generate",
			"server": "ibm-watsonx-mcp",
			"title": "Watsonx Text Generation",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use for completion-style tasks and fine decoding control via greedy or sampling.",
			"page": "https://three.ws/mcp-tools/ibm-watsonx-mcp/watsonx_generate"
		},
		{
			"name": "watsonx_embed",
			"server": "ibm-watsonx-mcp",
			"title": "Watsonx Embeddings",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to index texts for semantic search or similarity scoring; it returns vectors, not prose.",
			"page": "https://three.ws/mcp-tools/ibm-watsonx-mcp/watsonx_embed"
		},
		{
			"name": "watsonx_tokenize",
			"server": "ibm-watsonx-mcp",
			"title": "Watsonx Tokenize",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use to budget context and cost before a generation call.",
			"page": "https://three.ws/mcp-tools/ibm-watsonx-mcp/watsonx_tokenize"
		},
		{
			"name": "watsonx_list_models",
			"server": "ibm-watsonx-mcp",
			"title": "Watsonx Model Catalog",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to find a model id your account and region can run before overriding the default model on another watsonx tool.",
			"page": "https://three.ws/mcp-tools/ibm-watsonx-mcp/watsonx_list_models"
		},
		{
			"name": "ibm_granite_getting_started",
			"server": "ibm-x402-mcp",
			"title": "Getting Started (free)",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this first to orient before invoking a paid tool.",
			"page": "https://three.ws/mcp-tools/ibm-x402-mcp/ibm_granite_getting_started"
		},
		{
			"name": "ibm_granite_chat",
			"server": "ibm-x402-mcp",
			"title": "IBM Granite Chat ($0.02)",
			"category": "chat",
			"safety": "read",
			"price": 0.02,
			"whenToUse": "Use this for open-ended conversation or free-form text generation; for code tasks call ibm_granite_code, and for structured JSON extraction call ibm_granite_analyze.",
			"page": "https://three.ws/mcp-tools/ibm-x402-mcp/ibm_granite_chat"
		},
		{
			"name": "ibm_granite_code",
			"server": "ibm-x402-mcp",
			"title": "IBM Granite Code ($0.025)",
			"category": "chat",
			"safety": "read",
			"price": 0.025,
			"whenToUse": "Use this when the input is source code or a request to write code; for general conversation call ibm_granite_chat instead.",
			"page": "https://three.ws/mcp-tools/ibm-x402-mcp/ibm_granite_code"
		},
		{
			"name": "ibm_granite_embed",
			"server": "ibm-x402-mcp",
			"title": "IBM Granite Embed ($0.005)",
			"category": "chat",
			"safety": "read",
			"price": 0.005,
			"whenToUse": "Use this to index documents or compare texts by meaning; it returns vectors, not prose, so call ibm_granite_chat when you need a written answer.",
			"page": "https://three.ws/mcp-tools/ibm-x402-mcp/ibm_granite_embed"
		},
		{
			"name": "ibm_granite_analyze",
			"server": "ibm-x402-mcp",
			"title": "IBM Granite Analyze ($0.04)",
			"category": "chat",
			"safety": "read",
			"price": 0.04,
			"whenToUse": "Use this when you need machine-readable fields (entities, sentiment, risks) from a document rather than the free-text reply ibm_granite_chat gives.",
			"page": "https://three.ws/mcp-tools/ibm-x402-mcp/ibm_granite_analyze"
		},
		{
			"name": "ibm_granite_forecast",
			"server": "ibm-x402-mcp",
			"title": "IBM Granite Forecast ($0.05)",
			"category": "chat",
			"safety": "read",
			"price": 0.05,
			"whenToUse": "Use this to project a numeric series of at least 64 timestamped points forward; it returns numbers only, so pass the result to ibm_granite_analyze if you need commentary.",
			"page": "https://three.ws/mcp-tools/ibm-x402-mcp/ibm_granite_forecast"
		},
		{
			"name": "smart_money_coin",
			"server": "intel-mcp",
			"title": "Smart-money score for a coin",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before buying a coin to see whether reputable wallets or a single sybil cluster is behind the bid; for one wallet's record call wallet_intel.",
			"page": "https://three.ws/mcp-tools/intel-mcp/smart_money_coin"
		},
		{
			"name": "wallet_intel",
			"server": "intel-mcp",
			"title": "Wallet reputation + smart-money card",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to vet one wallet before copying it or trusting its buys; to judge a coin by its buyers call smart_money_coin instead.",
			"page": "https://three.ws/mcp-tools/intel-mcp/wallet_intel"
		},
		{
			"name": "wallet_linkage",
			"server": "intel-mcp",
			"title": "Wallet linkage: same-controller scoring across 2-10 addresses",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check whether a coin's early buyers are independent, or the creator's own alts, or whether a copy-trade leader secretly controls the creator wallet of a coin they are pumping.",
			"page": "https://three.ws/mcp-tools/intel-mcp/wallet_linkage"
		},
		{
			"name": "signal_feed",
			"server": "intel-mcp",
			"title": "Signal feed track record + recent signals",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to judge a feed's proven accuracy and price before subscribing to it.",
			"page": "https://three.ws/mcp-tools/intel-mcp/signal_feed"
		},
		{
			"name": "kol_leaderboard",
			"server": "intel-mcp",
			"title": "KOL trader leaderboard",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find the KOL traders worth watching; for what they traded on one coin call kol_trades.",
			"page": "https://three.ws/mcp-tools/intel-mcp/kol_leaderboard"
		},
		{
			"name": "kol_trades",
			"server": "intel-mcp",
			"title": "Recent KOL trades on a mint",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check whether known KOLs are in or out of a coin before acting on it; for the ranked trader list call kol_leaderboard.",
			"page": "https://three.ws/mcp-tools/intel-mcp/kol_trades"
		},
		{
			"name": "copy_smart_wallets",
			"server": "intel-mcp",
			"title": "Copy-trade smart wallet directory",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to pick wallets worth copying or following; for one wallet's full reputation card call wallet_intel instead.",
			"page": "https://three.ws/mcp-tools/intel-mcp/copy_smart_wallets"
		},
		{
			"name": "knock_quote",
			"server": "knock-mcp",
			"title": "Quote a door",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before every knock_send on a priced door: the owner can change their price at any time, and the quote you show a human before they approve a payment must be the live one.",
			"page": "https://three.ws/mcp-tools/knock-mcp/knock_quote"
		},
		{
			"name": "knock_directory",
			"server": "knock-mcp",
			"title": "Browse open doors",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to discover which humans an agent can pay to talk to, then call knock_quote on the one you pick.",
			"page": "https://three.ws/mcp-tools/knock-mcp/knock_directory"
		},
		{
			"name": "knock_send",
			"server": "knock-mcp",
			"title": "Knock on a door",
			"category": "mail",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you have one message for a specific person; call knock_quote first on a priced door so the human approves the live price.",
			"page": "https://three.ws/mcp-tools/knock-mcp/knock_send"
		},
		{
			"name": "knock_receipt",
			"server": "knock-mcp",
			"title": "Read a knock receipt",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after knock_send to see whether the person read or answered your message.",
			"page": "https://three.ws/mcp-tools/knock-mcp/knock_receipt"
		},
		{
			"name": "knock_inbox",
			"server": "knock-mcp",
			"title": "Read your knocks",
			"category": "mail",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to triage: the amount is the sender's own statement of how much reaching you was worth.",
			"page": "https://three.ws/mcp-tools/knock-mcp/knock_inbox"
		},
		{
			"name": "knock_act",
			"server": "knock-mcp",
			"title": "Act on a knock",
			"category": "mail",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after knock_inbox to answer, close, or block a knock you have triaged.",
			"page": "https://three.ws/mcp-tools/knock-mcp/knock_act"
		},
		{
			"name": "get_wallet_portfolio",
			"server": "kol-mcp",
			"title": "KOL wallet portfolio + P&L",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to size up a specific smart trader before copying or analyzing them.",
			"page": "https://three.ws/mcp-tools/kol-mcp/get_wallet_portfolio"
		},
		{
			"name": "get_wallet_trades",
			"server": "kol-mcp",
			"title": "A KOL wallet's trades on a mint",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to inspect a single smart trader's moves before copying.",
			"page": "https://three.ws/mcp-tools/kol-mcp/get_wallet_trades"
		},
		{
			"name": "get_loom_feed",
			"server": "loom-mcp",
			"title": "Browse the Loom 3D-creation gallery",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to browse or pick recent community creations; for one known id call get_creation instead.",
			"page": "https://three.ws/mcp-tools/loom-mcp/get_loom_feed"
		},
		{
			"name": "get_creation",
			"server": "loom-mcp",
			"title": "Fetch one Loom creation by id",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already have a creation id (from get_loom_feed or a submit_creation result) and need its full record or embed snippet.",
			"page": "https://three.ws/mcp-tools/loom-mcp/get_creation"
		},
		{
			"name": "submit_creation",
			"server": "loom-mcp",
			"title": "Submit a creation to the Loom gallery",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after the user has asked to share a specific model publicly, and only then.",
			"page": "https://three.ws/mcp-tools/loom-mcp/submit_creation"
		},
		{
			"name": "browse_agents",
			"server": "marketplace-mcp",
			"title": "Browse the agent marketplace",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find agents by topic or popularity; call agent_detail on a result for its full profile.",
			"page": "https://three.ws/mcp-tools/marketplace-mcp/browse_agents"
		},
		{
			"name": "agent_detail",
			"server": "marketplace-mcp",
			"title": "Fetch a marketplace agent by id",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this after browse_agents to read one agent's full profile, prices and tiers before hiring or forking it.",
			"page": "https://three.ws/mcp-tools/marketplace-mcp/agent_detail"
		},
		{
			"name": "agent_categories",
			"server": "marketplace-mcp",
			"title": "List agent marketplace categories",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before browse_agents to get the category slugs it filters on.",
			"page": "https://three.ws/mcp-tools/marketplace-mcp/agent_categories"
		},
		{
			"name": "browse_skills",
			"server": "marketplace-mcp",
			"title": "Browse the skills catalog",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find an installable skill for a capability an agent lacks; filter with slugs from skill_categories.",
			"page": "https://three.ws/mcp-tools/marketplace-mcp/browse_skills"
		},
		{
			"name": "skill_categories",
			"server": "marketplace-mcp",
			"title": "List skills catalog categories",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before browse_skills to get the category slugs it filters on.",
			"page": "https://three.ws/mcp-tools/marketplace-mcp/skill_categories"
		},
		{
			"name": "preview_agent_mint",
			"server": "metaplex-agent-mcp",
			"title": "Preview an on-chain agent mint (no funds move)",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before mint_onchain_agent every time, so the person sees the full cost before any SOL moves.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/preview_agent_mint"
		},
		{
			"name": "mint_onchain_agent",
			"server": "metaplex-agent-mcp",
			"title": "Mint an on-chain agent into the Metaplex Agent Registry",
			"category": "agents",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the server holds the paying key and the person approved the preview_agent_mint cost; for Phantom/Solflare users, use prepare_agent_mint instead.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/mint_onchain_agent"
		},
		{
			"name": "prepare_agent_mint",
			"server": "metaplex-agent-mcp",
			"title": "Prepare an agent mint for a Phantom/Solflare wallet to sign",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this instead of mint_onchain_agent when the person pays from their own browser or hardware wallet.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/prepare_agent_mint"
		},
		{
			"name": "send_signed_transaction",
			"server": "metaplex-agent-mcp",
			"title": "Broadcast signed Solana transactions in order and confirm them",
			"category": "agents",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use it to complete the prepare_agent_mint flow: pass the wallet-signed txs_base64 array and the create/register sequencing (including the propagation race) is handled.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/send_signed_transaction"
		},
		{
			"name": "preview_agent_identity",
			"server": "metaplex-agent-mcp",
			"title": "Preview an Agent Identity registration (no funds move)",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before register_agent_identity every time, so the person sees the cost and the document before any SOL moves.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/preview_agent_identity"
		},
		{
			"name": "register_agent_identity",
			"server": "metaplex-agent-mcp",
			"title": "Register an existing Core asset in the Metaplex Agent Registry",
			"category": "agents",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the Core asset already exists and only needs its identity; to mint a NEW agent, use mint_onchain_agent or prepare_agent_mint instead.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/register_agent_identity"
		},
		{
			"name": "get_onchain_agent",
			"server": "metaplex-agent-mcp",
			"title": "Read an on-chain agent (asset, registration, wallet)",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to inspect one agent by its asset address; to discover recent agents call list_onchain_agents.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/get_onchain_agent"
		},
		{
			"name": "agent_wallet",
			"server": "metaplex-agent-mcp",
			"title": "An agent's built-in wallet, or the signer wallet, with balance",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check a balance before a mint or after funding a wallet.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/agent_wallet"
		},
		{
			"name": "build_registration",
			"server": "metaplex-agent-mcp",
			"title": "Build an EIP-8004 registration document (no chain access)",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to preview exactly what mint_onchain_agent / register_agent_identity will write on-chain, or to host the document yourself and pass it back as registration_uri.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/build_registration"
		},
		{
			"name": "list_onchain_agents",
			"server": "metaplex-agent-mcp",
			"title": "List the latest on-chain agent registrations",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to discover recent registrations; call get_onchain_agent on an address for the full record.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/list_onchain_agents"
		},
		{
			"name": "three_status",
			"server": "metaplex-agent-mcp",
			"title": "Deploy fee, $THREE holder tier, and the live buyback ledger",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before a mint to tell the person what the deploy fee will be and how holding $THREE lowers it.",
			"page": "https://three.ws/mcp-tools/metaplex-agent-mcp/three_status"
		},
		{
			"name": "sns_resolve",
			"server": "naming-mcp",
			"title": "Resolve a .sol name to its owner wallet",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before sending to a .sol name so funds reach the wallet that owns it; for wallet to name call sns_reverse.",
			"page": "https://three.ws/mcp-tools/naming-mcp/sns_resolve"
		},
		{
			"name": "sns_reverse",
			"server": "naming-mcp",
			"title": "Reverse-lookup a wallet to its primary .sol name",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to show a readable name for a wallet address; for name to wallet call sns_resolve.",
			"page": "https://three.ws/mcp-tools/naming-mcp/sns_reverse"
		},
		{
			"name": "threews_availability",
			"server": "naming-mcp",
			"title": "Check if a *.threews.sol agent identity is available",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before claiming a *.threews.sol handle for an agent to confirm it is free.",
			"page": "https://three.ws/mcp-tools/naming-mcp/threews_availability"
		},
		{
			"name": "list_notifications",
			"server": "notifications-mcp",
			"title": "List notifications",
			"category": "account",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to surface alerts without polling, then mark_read / delete_notification to manage them.",
			"page": "https://three.ws/mcp-tools/notifications-mcp/list_notifications"
		},
		{
			"name": "mark_read",
			"server": "notifications-mcp",
			"title": "Mark notifications read",
			"category": "account",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this for normal triage after list_notifications; to remove a notification entirely use delete_notification instead.",
			"page": "https://three.ws/mcp-tools/notifications-mcp/mark_read"
		},
		{
			"name": "delete_notification",
			"server": "notifications-mcp",
			"title": "Delete notification",
			"category": "account",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to discard a notification entirely; prefer mark_read for normal triage.",
			"page": "https://three.ws/mcp-tools/notifications-mcp/delete_notification"
		},
		{
			"name": "get_preferences",
			"server": "notifications-mcp",
			"title": "Get notification preferences",
			"category": "account",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before set_preferences so you patch from the real current state.",
			"page": "https://three.ws/mcp-tools/notifications-mcp/get_preferences"
		},
		{
			"name": "set_preferences",
			"server": "notifications-mcp",
			"title": "Set notification preferences",
			"category": "account",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the owner wants a category on or off for a channel, after reading the current matrix with get_preferences.",
			"page": "https://three.ws/mcp-tools/notifications-mcp/set_preferences"
		},
		{
			"name": "register_push_device",
			"server": "notifications-mcp",
			"title": "Register push device",
			"category": "account",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when a browser has just granted push permission; use unregister_push_device to remove a device.",
			"page": "https://three.ws/mcp-tools/notifications-mcp/register_push_device"
		},
		{
			"name": "unregister_push_device",
			"server": "notifications-mcp",
			"title": "Unregister push device",
			"category": "account",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when a browser or device should stop getting push; to silence a whole category everywhere use set_preferences instead.",
			"page": "https://three.ws/mcp-tools/notifications-mcp/unregister_push_device"
		},
		{
			"name": "oracle_getting_started",
			"server": "oracle-mcp",
			"title": "Oracle getting started",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when you have not used the Oracle before.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_getting_started"
		},
		{
			"name": "oracle_top_plays",
			"server": "oracle-mcp",
			"title": "Oracle top conviction plays",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want the shortlist worth looking at right now.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_top_plays"
		},
		{
			"name": "oracle_coin",
			"server": "oracle-mcp",
			"title": "Oracle verdict for one coin",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have a mint and want to know whether to trust it.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_coin"
		},
		{
			"name": "oracle_feed",
			"server": "oracle-mcp",
			"title": "Oracle live feed",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want a wider board than oracle_top_plays.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_feed"
		},
		{
			"name": "oracle_search",
			"server": "oracle-mcp",
			"title": "Search Oracle coins",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you know a coin by name but not its mint.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_search"
		},
		{
			"name": "oracle_movers",
			"server": "oracle-mcp",
			"title": "Oracle conviction movers",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want momentum in the signal itself rather than in price.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_movers"
		},
		{
			"name": "oracle_wins",
			"server": "oracle-mcp",
			"title": "Oracle resolved wins",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you want proof the signal worked, not a promise that it will.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_wins"
		},
		{
			"name": "oracle_backtest",
			"server": "oracle-mcp",
			"title": "Oracle backtest",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before you size a position off a tier.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_backtest"
		},
		{
			"name": "oracle_calibration",
			"server": "oracle-mcp",
			"title": "Oracle calibration",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you need to know if an 80 really beats a 60.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_calibration"
		},
		{
			"name": "oracle_leaderboard",
			"server": "oracle-mcp",
			"title": "Oracle agent leaderboard",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see which armed agents are winning before you compare one.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_leaderboard"
		},
		{
			"name": "oracle_wallet",
			"server": "oracle-mcp",
			"title": "Oracle wallet intelligence",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to tell smart money from a sniper.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_wallet"
		},
		{
			"name": "oracle_stats",
			"server": "oracle-mcp",
			"title": "Oracle engine stats",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first to judge how much to trust the signal today.",
			"page": "https://three.ws/mcp-tools/oracle-mcp/oracle_stats"
		},
		{
			"name": "get_portfolio_summary",
			"server": "portfolio-mcp",
			"title": "My agents' live portfolio (holdings + USD value)",
			"category": "wallet",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this first for \"what do my agents hold\"; drill into one token with get_portfolio_asset.",
			"page": "https://three.ws/mcp-tools/portfolio-mcp/get_portfolio_summary"
		},
		{
			"name": "get_portfolio_history",
			"server": "portfolio-mcp",
			"title": "My portfolio value over time",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to chart or describe performance over time; for the current value call get_portfolio_summary.",
			"page": "https://three.ws/mcp-tools/portfolio-mcp/get_portfolio_history"
		},
		{
			"name": "get_portfolio_asset",
			"server": "portfolio-mcp",
			"title": "My position in one token (holdings + market + chart)",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to answer questions about one token you hold; for the whole portfolio call get_portfolio_summary.",
			"page": "https://three.ws/mcp-tools/portfolio-mcp/get_portfolio_asset"
		},
		{
			"name": "get_trades_feed",
			"server": "portfolio-mcp",
			"title": "Public closed-trade PnL feed",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for realized PnL and closed-trade history; for current holdings call get_portfolio_summary.",
			"page": "https://three.ws/mcp-tools/portfolio-mcp/get_trades_feed"
		},
		{
			"name": "get_wallet_balances",
			"server": "portfolio-mcp",
			"title": "Live on-chain balances for a Solana wallet",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to confirm the agent's own signing wallet before a send_transfer, or to check any address.",
			"page": "https://three.ws/mcp-tools/portfolio-mcp/get_wallet_balances"
		},
		{
			"name": "preview_transfer",
			"server": "portfolio-mcp",
			"title": "Preview a SOL or SPL transfer (no funds move)",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before every send_transfer, so the person approves the exact recipient, amount and fees.",
			"page": "https://three.ws/mcp-tools/portfolio-mcp/preview_transfer"
		},
		{
			"name": "send_transfer",
			"server": "portfolio-mcp",
			"title": "Send SOL or an SPL token on Solana mainnet",
			"category": "wallet",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after preview_transfer, and only on the person's explicit yes to that recipient and amount.",
			"page": "https://three.ws/mcp-tools/portfolio-mcp/send_transfer"
		},
		{
			"name": "list_agent_actions",
			"server": "provenance-mcp",
			"title": "List an agent's action-provenance trail",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit what an agent did over time; to verify one action by id call query_action.",
			"page": "https://three.ws/mcp-tools/provenance-mcp/list_agent_actions"
		},
		{
			"name": "query_action",
			"server": "provenance-mcp",
			"title": "Fetch + verify one provenance action",
			"category": "agents",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to prove or check a single action someone cited; for the full trail call list_agent_actions.",
			"page": "https://three.ws/mcp-tools/provenance-mcp/query_action"
		},
		{
			"name": "append_agent_action",
			"server": "provenance-mcp",
			"title": "Append a signed action to the provenance ledger",
			"category": "agents",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after an agent completes a real action worth auditing, once per action.",
			"page": "https://three.ws/mcp-tools/provenance-mcp/append_agent_action"
		},
		{
			"name": "search_tokens",
			"server": "pumpfun-mcp",
			"title": "Search Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find a coin's mint when you only know its name or ticker, then pass the mint to get_token_details or get_coin_intel.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/search_tokens"
		},
		{
			"name": "get_token_details",
			"server": "pumpfun-mcp",
			"title": "Token Details",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already have a mint and need its metadata, market cap, and curve status; for holder concentration call get_token_holders, for recent fills call get_token_trades.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_token_details"
		},
		{
			"name": "get_bonding_curve",
			"server": "pumpfun-mcp",
			"title": "Bonding Curve",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to read graduation progress or the curve spot price of a coin that has not graduated yet.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_bonding_curve"
		},
		{
			"name": "get_token_trades",
			"server": "pumpfun-mcp",
			"title": "Token Trades",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to read recent buy and sell flow on one coin; to see only large trades as they land, call pumpfun_watch_whales instead.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_token_trades"
		},
		{
			"name": "get_trending_tokens",
			"server": "pumpfun-mcp",
			"title": "Trending Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to scan the largest coins on pump.fun right now; for fresh launches call get_new_tokens, for coins that left the curve call get_graduated_tokens.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_trending_tokens"
		},
		{
			"name": "get_new_tokens",
			"server": "pumpfun-mcp",
			"title": "New Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to catch launches in their first minutes; for the largest coins by market cap call get_trending_tokens instead.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_new_tokens"
		},
		{
			"name": "get_graduated_tokens",
			"server": "pumpfun-mcp",
			"title": "Graduated Tokens",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to list coins that now trade on a PumpSwap pool, where pumpfun_quote_swap applies instead of get_bonding_curve.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_graduated_tokens"
		},
		{
			"name": "get_king_of_the_hill",
			"server": "pumpfun-mcp",
			"title": "King of the Hill",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find the coin closest to graduating among those still on the curve; for the full ranking call get_trending_tokens.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_king_of_the_hill"
		},
		{
			"name": "get_creator_profile",
			"server": "pumpfun-mcp",
			"title": "Creator Profile",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to vet a dev wallet's launch history before buying one of its coins; for its fee cash-outs call pumpfun_list_claims.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_creator_profile"
		},
		{
			"name": "get_token_holders",
			"server": "pumpfun-mcp",
			"title": "Token Holders",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check whether a few wallets control the supply before buying; for price and volume call get_token_details instead.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/get_token_holders"
		},
		{
			"name": "pumpfun_vanity_mint",
			"server": "pumpfun-mcp",
			"title": "Vanity Mint Keypair",
			"category": "launch",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before launching a coin when its mint address should carry a recognizable prefix or suffix.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_vanity_mint"
		},
		{
			"name": "pumpfun_watch_whales",
			"server": "pumpfun-mcp",
			"title": "Watch Whale Trades",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see who is moving size on a coin right now; for the full recent tape call get_token_trades.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_watch_whales"
		},
		{
			"name": "pumpfun_list_claims",
			"server": "pumpfun-mcp",
			"title": "List Creator Fee Claims",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to audit how much a creator has already cashed out; for only the claims inside a recent window call pumpfun_watch_claims.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_list_claims"
		},
		{
			"name": "pumpfun_watch_claims",
			"server": "pumpfun-mcp",
			"title": "Watch Creator Fee Claims",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for batch collection after a delay; for a creator's full recent claim history call pumpfun_list_claims.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_watch_claims"
		},
		{
			"name": "pumpfun_first_claims",
			"server": "pumpfun-mcp",
			"title": "First Creator Fee Claims",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to spot creators cashing out for the first time across all coins; for one creator's history call pumpfun_list_claims.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_first_claims"
		},
		{
			"name": "sns_resolve",
			"server": "pumpfun-mcp",
			"title": "Resolve .sol Domain",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a wallet is named by its .sol domain and you need the address; for the reverse direction call sns_reverseLookup.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/sns_resolve"
		},
		{
			"name": "sns_reverseLookup",
			"server": "pumpfun-mcp",
			"title": "Reverse .sol Lookup",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to label a raw wallet address with its human-readable .sol name; to go from name to address call sns_resolve.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/sns_reverseLookup"
		},
		{
			"name": "social_cashtag_sentiment",
			"server": "pumpfun-mcp",
			"title": "Cashtag Sentiment",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to score posts you have already collected; it fetches nothing itself, so pass the posts in.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/social_cashtag_sentiment"
		},
		{
			"name": "kol_leaderboard",
			"server": "pumpfun-mcp",
			"title": "KOL Leaderboard",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find which trader wallets are worth following; to see whether they hold a given coin, call get_coin_intel or get_token_holders.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/kol_leaderboard"
		},
		{
			"name": "pumpfun_quote_swap",
			"server": "pumpfun-mcp",
			"title": "Swap Quote (Read-Only)",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to size a trade on a graduated coin, or to measure its pool depth, before executing anywhere.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_quote_swap"
		},
		{
			"name": "social_x_post_impact",
			"server": "pumpfun-mcp",
			"title": "X Post Price Impact",
			"category": "intelligence",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to measure how one X post moved a coin that is still on its bonding curve (pricing is virtual_quote_reserves / virtual_token_reserves); a graduated coin has no curve, so the call fails rather than returning a zero price.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/social_x_post_impact"
		},
		{
			"name": "pumpfun_bot_status",
			"server": "pumpfun-mcp",
			"title": "Indexer Status",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this first when search_tokens, get_graduated_tokens, get_king_of_the_hill, or get_creator_profile fail or are missing, to see whether the indexer is configured and healthy.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_bot_status"
		},
		{
			"name": "pumpfun_token_3d",
			"server": "pumpfun-mcp",
			"title": "Token 3D Snapshot",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to hand a user a visual, shareable view of a coin; for the raw numbers alone call get_token_details and get_token_holders.",
			"page": "https://three.ws/mcp-tools/pumpfun-mcp/pumpfun_token_3d"
		},
		{
			"name": "compose_scene",
			"server": "scene-mcp",
			"title": "Compose a 3D diorama plan from one sentence",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you want to review or edit the plan, or forge the objects yourself; to get a finished GLB world in one call, use build_world instead.",
			"page": "https://three.ws/mcp-tools/scene-mcp/compose_scene"
		},
		{
			"name": "get_scene",
			"server": "scene-mcp",
			"title": "Fetch a saved diorama by id",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already have a diorama id (from list_scenes or build_world) and need its objects, for example before passing them to export_scene.",
			"page": "https://three.ws/mcp-tools/scene-mcp/get_scene"
		},
		{
			"name": "list_scenes",
			"server": "scene-mcp",
			"title": "List recent or featured dioramas",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to discover existing dioramas and their ids; fetch one in full with get_scene.",
			"page": "https://three.ws/mcp-tools/scene-mcp/list_scenes"
		},
		{
			"name": "export_scene",
			"server": "scene-mcp",
			"title": "Export a forged diorama as one GLB scene",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after every object in a diorama has a glbUrl and you want one downloadable GLB; to go from a sentence straight to the merged world, call build_world instead.",
			"page": "https://three.ws/mcp-tools/scene-mcp/export_scene"
		},
		{
			"name": "build_world",
			"server": "scene-mcp",
			"title": "Build a complete 3D world from one sentence (no browser needed)",
			"category": "assets",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when you want a finished world from one sentence with no intermediate steps; to inspect or adjust the plan before anything is forged, call compose_scene instead.",
			"page": "https://three.ws/mcp-tools/scene-mcp/build_world"
		},
		{
			"name": "list_signal_feeds",
			"server": "signals-mcp",
			"title": "Browse the signal-feed marketplace",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to choose a feed before subscribe_signal; to rank the publishers themselves call get_mirror_leaderboard.",
			"page": "https://three.ws/mcp-tools/signals-mcp/list_signal_feeds"
		},
		{
			"name": "get_mirror_leaderboard",
			"server": "signals-mcp",
			"title": "Rank signal publishers by realized performance",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to find a leader before subscribing to their feed.",
			"page": "https://three.ws/mcp-tools/signals-mcp/get_mirror_leaderboard"
		},
		{
			"name": "get_subscriptions",
			"server": "signals-mcp",
			"title": "List your signal subscriptions + delivery history",
			"category": "trading",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check what you follow and what it has cost before changing a subscription with set_subscription_status.",
			"page": "https://three.ws/mcp-tools/signals-mcp/get_subscriptions"
		},
		{
			"name": "subscribe_signal",
			"server": "signals-mcp",
			"title": "Subscribe an agent to a signal feed",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this after picking a feed with list_signal_feeds; start in simulate mode and switch to live only on the owner's explicit say-so.",
			"page": "https://three.ws/mcp-tools/signals-mcp/subscribe_signal"
		},
		{
			"name": "set_subscription_status",
			"server": "signals-mcp",
			"title": "Resume, pause, stop, or kill a subscription",
			"category": "trading",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this to stop a live subscription from spending or trading right now.",
			"page": "https://three.ws/mcp-tools/signals-mcp/set_subscription_status"
		},
		{
			"name": "decode_solana_memo_data_uri",
			"server": "solana-memo-media-mcp",
			"title": "Decode a Solana memo data URI",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you already hold a data URI string; to pull media from a transaction call extract_solana_memo_media instead.",
			"page": "https://three.ws/mcp-tools/solana-memo-media-mcp/decode_solana_memo_data_uri"
		},
		{
			"name": "extract_solana_memo_media",
			"server": "solana-memo-media-mcp",
			"title": "Extract media from a Solana transaction memo",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have a transaction signature; to scan an address for media call find_solana_memo_media.",
			"page": "https://three.ws/mcp-tools/solana-memo-media-mcp/extract_solana_memo_media"
		},
		{
			"name": "find_solana_memo_media",
			"server": "solana-memo-media-mcp",
			"title": "Find recent memo media for a Solana address",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have an address but no signature; for one known transaction call extract_solana_memo_media.",
			"page": "https://three.ws/mcp-tools/solana-memo-media-mcp/find_solana_memo_media"
		},
		{
			"name": "read_inscription",
			"server": "solana-memo-media-mcp",
			"title": "Read and verify a multi-part Solana memo inscription",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have a signature from a multi-part memo inscription and want the full file or message rebuilt and verified.",
			"page": "https://three.ws/mcp-tools/solana-memo-media-mcp/read_inscription"
		},
		{
			"name": "get_solana_memo_media_status",
			"server": "solana-memo-media-mcp",
			"title": "Solana memo media capability",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check which RPC hosts and memo programs the server will use before a scan.",
			"page": "https://three.ws/mcp-tools/solana-memo-media-mcp/get_solana_memo_media_status"
		},
		{
			"name": "three_price",
			"server": "three-token-mcp",
			"title": "Live $THREE price (Jupiter) + USD→$THREE quote",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to quote $THREE in USD or size a USD amount in $THREE; for a wallet's holdings call three_balance.",
			"page": "https://three.ws/mcp-tools/three-token-mcp/three_price"
		},
		{
			"name": "three_balance",
			"server": "three-token-mcp",
			"title": "Read a wallet's $THREE + SOL balance",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to check holdings before a three_burn or to confirm a wallet holds $THREE.",
			"page": "https://three.ws/mcp-tools/three-token-mcp/three_balance"
		},
		{
			"name": "three_burn",
			"server": "three-token-mcp",
			"title": "Burn $THREE on-chain (incinerator + treasury split)",
			"category": "wallet",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when the person explicitly asks to burn and has approved the USD amount; check three_balance first.",
			"page": "https://three.ws/mcp-tools/three-token-mcp/three_burn"
		},
		{
			"name": "render_avatar",
			"server": "threews-avatar-mcp",
			"title": "Render 3D avatar",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the user wants to see the avatar in the conversation; for an iframe to paste into a website, call avatar_embed_code instead.",
			"page": "https://three.ws/mcp-tools/threews-avatar-mcp/render_avatar"
		},
		{
			"name": "avatar_embed_code",
			"server": "threews-avatar-mcp",
			"title": "Get avatar embed code",
			"category": "integrations",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when the avatar has to live on a page outside this chat; to show it here, call render_avatar instead.",
			"page": "https://three.ws/mcp-tools/threews-avatar-mcp/avatar_embed_code"
		},
		{
			"name": "get_avatar",
			"server": "threews-avatar-mcp",
			"title": "Get avatar metadata",
			"category": "assets",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to resolve a handle to its avatar id and GLB url before rendering, embedding, or downloading it.",
			"page": "https://three.ws/mcp-tools/threews-avatar-mcp/get_avatar"
		},
		{
			"name": "quote_trade",
			"server": "trading-mcp",
			"title": "Quote a trade from an agent wallet",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before every execute_trade to show the owner what a fill would do.",
			"page": "https://three.ws/mcp-tools/trading-mcp/quote_trade"
		},
		{
			"name": "list_positions",
			"server": "trading-mcp",
			"title": "List agent wallet positions",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use it to size a sell (tokenAmountRaw) or to confirm a fill landed.",
			"page": "https://three.ws/mcp-tools/trading-mcp/list_positions"
		},
		{
			"name": "execute_trade",
			"server": "trading-mcp",
			"title": "Execute a trade (moves real funds)",
			"category": "utility",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after the owner approved a quoted trade, to FILL a buy or sell from the agent's custodial wallet.",
			"page": "https://three.ws/mcp-tools/trading-mcp/execute_trade"
		},
		{
			"name": "load_session",
			"server": "tutor-mcp",
			"title": "Load a tutoring session ledger",
			"category": "chat",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to show the learner what they owe so far; to seal the invoice call close_session.",
			"page": "https://three.ws/mcp-tools/tutor-mcp/load_session"
		},
		{
			"name": "close_session",
			"server": "tutor-mcp",
			"title": "Close a tutoring session (finalize invoice)",
			"category": "chat",
			"safety": "write",
			"price": 0,
			"whenToUse": "Use this when the learner is done; call load_session first to review the tab before sealing it.",
			"page": "https://three.ws/mcp-tools/tutor-mcp/close_session"
		},
		{
			"name": "vanity_quote",
			"server": "vanity-mcp",
			"title": "Quote the bounty price for a vanity pattern",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before posting a grind-bounty so you escrow a fair amount.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_quote"
		},
		{
			"name": "vanity_appraise",
			"server": "vanity-mcp",
			"title": "Appraise the rarity of a Solana address",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to rate an address someone already has; to price grinding a new pattern call vanity_quote.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_appraise"
		},
		{
			"name": "vanity_board",
			"server": "vanity-mcp",
			"title": "Browse the vanity grind-bounty board",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see what bounties exist and what they pay; workers looking for claimable work should call vanity_open.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_board"
		},
		{
			"name": "vanity_open",
			"server": "vanity-mcp",
			"title": "List claimable open bounties for workers",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when running a grinding worker that needs its next job; for the full board with settled bounties call vanity_board.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_open"
		},
		{
			"name": "vanity_stats",
			"server": "vanity-mcp",
			"title": "Live grind-bounty market totals",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for a one-line market summary; for individual bounties call vanity_board.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_stats"
		},
		{
			"name": "vanity_leaderboard",
			"server": "vanity-mcp",
			"title": "Top grinders by USDC earned",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to see who is winning bounties; for market totals call vanity_stats.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_leaderboard"
		},
		{
			"name": "vanity_config",
			"server": "vanity-mcp",
			"title": "Bounty market config: payout + asset metadata",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before posting a bounty to confirm the market can pay out.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_config"
		},
		{
			"name": "vanity_gallery",
			"server": "vanity-mcp",
			"title": "Browse the proof-of-grind rarity gallery",
			"category": "marketplace",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to browse published rare addresses; to score one address call vanity_appraise.",
			"page": "https://three.ws/mcp-tools/vanity-mcp/vanity_gallery"
		},
		{
			"name": "analyze_image",
			"server": "vision-mcp",
			"title": "Analyze an image against a prompt",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you have a specific question about an image; for a general caption or alt text with no question, call describe_image instead.",
			"page": "https://three.ws/mcp-tools/vision-mcp/analyze_image"
		},
		{
			"name": "describe_image",
			"server": "vision-mcp",
			"title": "Describe an image in natural language",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this for alt text or a caption when you have no particular question; to ask something specific about the image, call analyze_image instead.",
			"page": "https://three.ws/mcp-tools/vision-mcp/describe_image"
		},
		{
			"name": "get_vision_status",
			"server": "vision-mcp",
			"title": "Vision availability + accepted formats",
			"category": "utility",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this before calling analyze_image / describe_image so the agent can decide whether to offer a \"describe this image\" action.",
			"page": "https://three.ws/mcp-tools/vision-mcp/get_vision_status"
		},
		{
			"name": "x402_wallet",
			"server": "x402-mcp",
			"title": "The agent's x402 spending wallet (address + balance)",
			"category": "wallet",
			"safety": "read",
			"price": 0,
			"whenToUse": "Call this before pay_and_call to confirm there's USDC to spend.",
			"page": "https://three.ws/mcp-tools/x402-mcp/x402_wallet"
		},
		{
			"name": "find_services",
			"server": "x402-mcp",
			"title": "Find paid x402 services the agent can call",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when a task needs a paid API or tool you do not already have; to use a match, check its price with inspect_endpoint, then pass its resource into pay_and_call.",
			"page": "https://three.ws/mcp-tools/x402-mcp/find_services"
		},
		{
			"name": "inspect_endpoint",
			"server": "x402-mcp",
			"title": "Inspect an x402 endpoint (price + requirements, no payment)",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this to learn the cost before pay_and_call.",
			"page": "https://three.ws/mcp-tools/x402-mcp/inspect_endpoint"
		},
		{
			"name": "pay_and_call",
			"server": "x402-mcp",
			"title": "Pay an x402 endpoint in USDC or $THREE and return its result",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this after inspect_endpoint has shown the price and the user has approved paying it; a settled payment cannot be undone.",
			"page": "https://three.ws/mcp-tools/x402-mcp/pay_and_call"
		},
		{
			"name": "spending_report",
			"server": "x402-mcp",
			"title": "This wallet's x402 spending report (totals by merchant and day)",
			"category": "x402",
			"safety": "read",
			"price": 0,
			"whenToUse": "Use this when you need to know how much this wallet has paid, and to whom, before approving another paid call.",
			"page": "https://three.ws/mcp-tools/x402-mcp/spending_report"
		},
		{
			"name": "weather_forecast",
			"server": "x402-mcp",
			"title": "Weather Guard: Forecast",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the raw hourly outlook for a location over the next day.",
			"page": "https://three.ws/mcp-tools/x402-mcp/weather_forecast"
		},
		{
			"name": "weather_go_no_go",
			"server": "x402-mcp",
			"title": "Weather Guard: Activity Decision",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need a yes/no/caution decision on doing an outdoor activity at a location, not raw forecast numbers.",
			"page": "https://three.ws/mcp-tools/x402-mcp/weather_go_no_go"
		},
		{
			"name": "carbon_now",
			"server": "x402-mcp",
			"title": "Grid Carbon: Now",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the current carbon intensity of the UK grid before running electricity-heavy work.",
			"page": "https://three.ws/mcp-tools/x402-mcp/carbon_now"
		},
		{
			"name": "carbon_best_window",
			"server": "x402-mcp",
			"title": "Grid Carbon: Best Window",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to schedule flexible UK electricity use into the lowest-carbon window of the next 48 hours.",
			"page": "https://three.ws/mcp-tools/x402-mcp/carbon_best_window"
		},
		{
			"name": "domain_rdap_check",
			"server": "x402-mcp",
			"title": "Domain Check (RDAP)",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the registration status, registrar, or expiry of a single domain.",
			"page": "https://three.ws/mcp-tools/x402-mcp/domain_rdap_check"
		},
		{
			"name": "domain_rdap_check_bulk",
			"server": "x402-mcp",
			"title": "Domain Check (Bulk RDAP)",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need to check availability or registration of many domains at once instead of calling domain_rdap_check repeatedly.",
			"page": "https://three.ws/mcp-tools/x402-mcp/domain_rdap_check_bulk"
		},
		{
			"name": "research_search",
			"server": "x402-mcp",
			"title": "Scholarly Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to find academic papers on a topic across several scholarly indexes in one call.",
			"page": "https://three.ws/mcp-tools/x402-mcp/research_search"
		},
		{
			"name": "research_paper",
			"server": "x402-mcp",
			"title": "Paper Detail & Citation Graph",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you already have a paper identifier and need its full metadata and citation graph.",
			"page": "https://three.ws/mcp-tools/x402-mcp/research_paper"
		},
		{
			"name": "research_bibliography",
			"server": "x402-mcp",
			"title": "Bibliography Formatter",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need ready-to-paste BibTeX or APA citations for a list of DOIs.",
			"page": "https://three.ws/mcp-tools/x402-mcp/research_bibliography"
		},
		{
			"name": "book_search",
			"server": "x402-mcp",
			"title": "Book Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to find a public-domain book and its gutenbergId before reading it with book_read.",
			"page": "https://three.ws/mcp-tools/x402-mcp/book_search"
		},
		{
			"name": "book_read",
			"server": "x402-mcp",
			"title": "Book Read",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need the full text of a public-domain book and already have its gutenbergId.",
			"page": "https://three.ws/mcp-tools/x402-mcp/book_read"
		},
		{
			"name": "news_wire_search",
			"server": "x402-mcp",
			"title": "Global News Wire Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to search worldwide news coverage of a topic for the first time, before monitoring it with news_wire_poll.",
			"page": "https://three.ws/mcp-tools/x402-mcp/news_wire_search"
		},
		{
			"name": "news_wire_poll",
			"server": "x402-mcp",
			"title": "Global News Wire Pulse",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this for ongoing monitoring of a query once news_wire_search has returned a cursor.",
			"page": "https://three.ws/mcp-tools/x402-mcp/news_wire_poll"
		},
		{
			"name": "transit_plan",
			"server": "x402-mcp",
			"title": "Transit Trip Plan",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need to plan an MBTA trip between two places or to find a stop id.",
			"page": "https://three.ws/mcp-tools/x402-mcp/transit_plan"
		},
		{
			"name": "transit_delays",
			"server": "x402-mcp",
			"title": "Transit Delay Snapshot",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need to know whether MBTA service at a stop is running on time right now.",
			"page": "https://three.ws/mcp-tools/x402-mcp/transit_delays"
		},
		{
			"name": "places_search",
			"server": "x402-mcp",
			"title": "Places Search",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this to find nearby points of interest by category around a coordinate.",
			"page": "https://three.ws/mcp-tools/x402-mcp/places_search"
		},
		{
			"name": "places_detail",
			"server": "x402-mcp",
			"title": "Place Detail",
			"category": "x402",
			"safety": "irreversible",
			"price": 0,
			"whenToUse": "Use this when you need every tag and detail of one place already returned by places_search.",
			"page": "https://three.ws/mcp-tools/x402-mcp/places_detail"
		}
	]
}
