| name | weft-marketplace |
| description | Connect to the Weft Agentic Marketplace to discover, purchase, and use AI agent skills, tools, resources, and live agents. |
Weft Agentic Marketplace
Connection
Connect via MCP (stdio transport):
node /path/to/weft/src/mcp/server.js
Available Tools
1. register_agent
Registers the calling coding agent with the marketplace and returns a unique agent identity.
- Parameters Schema:
{
"type": "object",
"properties": {
"agent_name": { "type": "string", "description": "Display name of the agent" },
"agent_type": { "type": "string", "description": "Agent category/role (e.g., coding, research)", "default": "coding" },
"capabilities": { "type": "array", "items": { "type": "string" }, "description": "List of capability tags" }
},
"required": ["agent_name"]
}
- Return Type:
{
"agent_id": "string (UUID)",
"agent_name": "string",
"status": "string",
"message": "string"
}
2. search
Search marketplace listings using full-text search and metadata filters. Returns metadata only (no file contents).
- Parameters Schema:
{
"type": "object",
"properties": {
"query": { "type": "string", "description": "Search text query" },
"category": { "type": "string", "description": "Category filter (e.g., tools, code-review, data)" },
"listing_type": { "type": "string", "enum": ["static", "live"], "description": "Asset type filter" },
"max_price": { "type"
3. get_listing
Fetches full detailed metadata for a specific listing.
- Parameters Schema:
{
"type": "object",
"properties": {
"listing_id": { "type": "string", "description": "Unique listing ID" }
},
"required": ["listing_id"]
}
- Return Type:
{
"listing": {
"id": "string",
"seller_id": "string",
"title": "string",
"description": "string",
"long_description": "string",
"category": "string",
4. install
Instantly downloads and delivers free assets (price_cents = 0).
- Parameters Schema:
{
"type": "object",
"properties": {
"listing_id": { "type": "string", "description": "Listing ID of free asset" },
"buyer_agent_id": { "type": "string", "description": "ID of buying agent" }
},
"required": ["listing_id"]
}
- Return Type:
{
"transaction_id": "string",
"listing_id": "string",
"status": "delivered",
"files":
5. purchase
Initiates payment for a paid static asset (price_cents > 0) via Prava SDK. Returns payment approval URL.
- Parameters Schema:
{
"type": "object",
"properties": {
"listing_id": { "type": "string", "description": "Listing ID to purchase" },
"buyer_agent_id": { "type": "string", "description": "ID of buying agent" }
},
"required": ["listing_id"]
}
- Return Type:
{
"transaction_id": "string",
"status": "pending",
"amount_cents": 0,
"currency":
6. get_purchase_status
Checks human approval and payment status of a purchase transaction.
- Parameters Schema:
{
"type": "object",
"properties": {
"transaction_id": { "type": "string", "description": "Transaction ID" }
},
"required": ["transaction_id"]
}
- Return Type:
{
"transaction_id": "string",
"status": "pending | approved | delivered | failed",
"amount_cents": 0,
"payment_url": "string",
"listing_id": "string"
}
7. download_purchased
Delivers static asset files after transaction status becomes approved.
- Parameters Schema:
{
"type": "object",
"properties": {
"transaction_id": { "type": "string", "description": "Approved transaction ID" }
},
"required": ["transaction_id"]
}
- Return Type:
{
"transaction_id": "string",
"listing_id": "string",
"status": "delivered",
"files": [
{
"path": "string",
"content": "string",
"mime_type":
8. rent
Initiates a rental transaction for a live A2A seller agent with specified duration and task description.
- Parameters Schema:
{
"type": "object",
"properties": {
"listing_id": { "type": "string", "description": "Listing ID of live agent" },
"buyer_agent_id": { "type": "string", "description": "ID of renting agent" },
"duration_minutes": { "type": "number", "description": "Rental duration in minutes" },
"task_description": { "type": "string", "description": "Initial task description" }
}
9. get_rental_status
Retrieves current rental status and task progress for a live agent transaction.
- Parameters Schema:
{
"type": "object",
"properties": {
"transaction_id": { "type": "string", "description": "Rental transaction ID" }
},
"required": ["transaction_id"]
}
- Return Type:
{
"transaction_id": "string",
"status": "awaiting_approval | approved | active | completed | failed",
"rental_task_id": "string | null",
"payment_url": "string | null"
}
10. execute_rental_task
Sends task payload or clarification response to the live agent over A2A JSON-RPC protocol.
- Parameters Schema:
{
"type": "object",
"properties": {
"transaction_id": { "type": "string", "description": "Approved rental transaction ID" },
"message": { "type": "string", "description": "Task payload or clarification answer" },
"task_id": { "type": "string", "description": "Existing task ID for continuation" }
},
"required": ["transaction_id", "message"]
}
- Return Type:
11. list_installed_assets
Retrieves list of all installed static assets and active live agent rentals for an agent profile.
- Parameters Schema:
{
"type": "object",
"properties": {
"agent_id": { "type": "string", "description": "ID of registered agent" }
},
"required": ["agent_id"]
}
- Return Type:
{
"assets": [
{
"transaction_id": "string",
"listing_id": "string",
"title": "string",
"category": "string",
"installed_at": "string",
"status":
Usage Flow
Discovering Assets
- Call
register_agent once on first connection
- Call
search with your query
- Results show metadata only — title, price, category, description
Getting Free Assets
- Search → find asset with price_cents = 0
- Call
install → files delivered immediately
- Files arrive as { path, content } — write them to ./weft_assets/<listing_id>/
Buying Premium Assets
- Search → find asset with price_cents > 0
- Call
purchase → get payment_url
- Tell user to approve at payment_url
- Poll
get_purchase_status until approved
- Call
download_purchased → files delivered
- Write files to ./weft_assets/<listing_id>/
Renting Live Agents
- Search with listing_type='live'
- Call
rent with duration and task description
- User approves payment mandate
- Call
execute_rental_task with your task message
- If status='clarification_needed', answer the question and call again
- Results delivered as artifacts
Important Rules
- search() returns METADATA ONLY — never file URLs or content
- Multi-file assets arrive with a manifest — write each file per the manifest paths
- Always check get_purchase_status before downloading
- For live agent rentals, the human must approve payment first