{
  "name": "seren-mcp",
  "version": "1.0.0",
  "description": "SerenAI MCP Server - Manage serverless Postgres and query the agent marketplace",
  "tools": [
    {
      "name": "list_projects",
      "description": "List all Seren projects accessible to the authenticated user",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "create_project",
      "description": "Create a new Seren project",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "region": {
            "type": "string",
            "description": "Deployment region"
          }
        },
        "required": [
          "name",
          "region"
        ]
      }
    },
    {
      "name": "describe_project",
      "description": "Get detailed information about a specific project",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id"
        ]
      }
    },
    {
      "name": "update_project",
      "description": "Update a project's settings including name, security options, and compute defaults",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "New project name"
          },
          "compute_unit_min": {
            "type": "integer",
            "description": ""
          },
          "compute_unit_max": {
            "type": "integer",
            "description": ""
          }
        },
        "required": [
          "project_id"
        ]
      }
    },
    {
      "name": "delete_project",
      "description": "Delete a Seren project",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id"
        ]
      }
    },
    {
      "name": "list_branches",
      "description": "List branches for a project",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id"
        ]
      }
    },
    {
      "name": "create_branch",
      "description": "Create a new branch in a project",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": ""
          },
          "parent_branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "name"
        ]
      }
    },
    {
      "name": "describe_branch",
      "description": "Get details about a specific branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "rename_branch",
      "description": "Rename a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "New branch name"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "name"
        ]
      }
    },
    {
      "name": "reset_branch",
      "description": "Reset a branch to its parent's latest state (destroys all data on the branch)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "set_branch_expiration",
      "description": "Set or remove branch expiration date",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "expires_at": {
            "type": "string",
            "description": "Expiration date in RFC3339 format, or null to remove"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "set_default_branch",
      "description": "Set a branch as the default branch for the project",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "delete_branch",
      "description": "Delete a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "list_all_databases",
      "description": "List all databases across all projects with project and branch names",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "list_databases",
      "description": "List all databases in a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "get_database",
      "description": "Get details about a specific database",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "database_id"
        ]
      }
    },
    {
      "name": "create_database",
      "description": "Create a new database in a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "name"
        ]
      }
    },
    {
      "name": "delete_database",
      "description": "Delete a database from a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "database_id"
        ]
      }
    },
    {
      "name": "get_database_tables",
      "description": "List tables in a database schema",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database": {
            "type": "string",
            "description": ""
          },
          "schema": {
            "type": "string",
            "description": "",
            "default": "public"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "database"
        ]
      }
    },
    {
      "name": "describe_table_schema",
      "description": "Get schema information for a table",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database": {
            "type": "string",
            "description": ""
          },
          "table_name": {
            "type": "string",
            "description": ""
          },
          "schema": {
            "type": "string",
            "description": "",
            "default": "public"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "database",
          "table_name"
        ]
      }
    },
    {
      "name": "run_sql",
      "description": "Execute a SQL query against a database",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database": {
            "type": "string",
            "description": ""
          },
          "query": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "database",
          "query"
        ]
      }
    },
    {
      "name": "run_sql_transaction",
      "description": "Execute multiple SQL statements in a single transaction",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database": {
            "type": "string",
            "description": ""
          },
          "queries": {
            "type": "array",
            "description": "",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "database",
          "queries"
        ]
      }
    },
    {
      "name": "explain_sql_statement",
      "description": "Explain a SQL statement (FORMAT JSON)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database": {
            "type": "string",
            "description": ""
          },
          "query": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "database",
          "query"
        ]
      }
    },
    {
      "name": "list_endpoints",
      "description": "List all endpoints for a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "create_endpoint",
      "description": "Create a new endpoint for a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "autoscaling_min": {
            "type": "integer",
            "description": ""
          },
          "autoscaling_max": {
            "type": "integer",
            "description": ""
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "get_endpoint_status",
      "description": "Get the current status of an endpoint (running, suspended, etc.)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "endpoint_id"
        ]
      }
    },
    {
      "name": "update_endpoint",
      "description": "Update an endpoint's settings including autoscaling and suspend timeout",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "autoscaling_min": {
            "type": "integer",
            "description": ""
          },
          "autoscaling_max": {
            "type": "integer",
            "description": ""
          },
          "suspend_timeout_seconds": {
            "type": "integer",
            "description": ""
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "endpoint_id"
        ]
      }
    },
    {
      "name": "start_endpoint",
      "description": "Start a suspended endpoint",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "endpoint_id"
        ]
      }
    },
    {
      "name": "suspend_endpoint",
      "description": "Suspend an endpoint",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "endpoint_id"
        ]
      }
    },
    {
      "name": "restart_endpoint",
      "description": "Restart an endpoint (rolling restart via Kubernetes)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "endpoint_id"
        ]
      }
    },
    {
      "name": "delete_endpoint",
      "description": "Delete an endpoint",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "endpoint_id"
        ]
      }
    },
    {
      "name": "list_roles",
      "description": "List all roles in a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "create_role",
      "description": "Create a new database role on a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Role name"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "name"
        ]
      }
    },
    {
      "name": "reset_role_password",
      "description": "Reset a database role's password, generating a new secure password",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "role_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "password": {
            "type": "string",
            "description": "New password for the role"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "role_id",
          "password"
        ]
      }
    },
    {
      "name": "reveal_role_password",
      "description": "Reveal the current password for a database role",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "role_name": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "role_name"
        ]
      }
    },
    {
      "name": "delete_role",
      "description": "Delete a database role from a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "role_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "project_id",
          "branch_id",
          "role_id"
        ]
      }
    },
    {
      "name": "get_connection_string",
      "description": "Get connection string for a branch",
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "branch_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "database": {
            "type": "string",
            "description": ""
          },
          "pooled": {
            "type": "boolean",
            "description": "Return pooled connection"
          },
          "role": {
            "type": "string",
            "description": "PostgreSQL role/username"
          }
        },
        "required": [
          "project_id",
          "branch_id"
        ]
      }
    },
    {
      "name": "list_organizations",
      "description": "List organizations accessible to the authenticated user",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "list_api_keys",
      "description": "List all API keys for an organization",
      "inputSchema": {
        "type": "object",
        "properties": {
          "organization_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "organization_id"
        ]
      }
    },
    {
      "name": "create_api_key",
      "description": "Create a new API key for an organization",
      "inputSchema": {
        "type": "object",
        "properties": {
          "organization_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": ""
          },
          "expires_in_days": {
            "type": "integer",
            "description": ""
          }
        },
        "required": [
          "organization_id",
          "name"
        ]
      }
    },
    {
      "name": "revoke_api_key",
      "description": "Revoke an API key",
      "inputSchema": {
        "type": "object",
        "properties": {
          "organization_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          },
          "key_id": {
            "type": "string",
            "description": "",
            "format": "uuid"
          }
        },
        "required": [
          "organization_id",
          "key_id"
        ]
      }
    },
    {
      "name": "list_agent_publishers",
      "description": "List active publishers in the agent store",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": ""
          },
          "is_verified": {
            "type": "boolean",
            "description": ""
          },
          "limit": {
            "type": "integer",
            "description": ""
          },
          "offset": {
            "type": "integer",
            "description": ""
          }
        },
        "required": []
      }
    },
    {
      "name": "get_agent_publisher",
      "description": "Get details about a specific publisher including pricing info by slug",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "slug"
        ]
      }
    },
    {
      "name": "suggest_for_task",
      "description": "Get publisher and agent recommendations for a task",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "The task to find publishers for"
          },
          "type": {
            "type": "string",
            "description": "publisher, agent, or both"
          },
          "limit": {
            "type": "integer",
            "description": ""
          }
        },
        "required": [
          "query"
        ]
      }
    },
    {
      "name": "execute_paid_query",
      "description": "Execute a paid SQL query against a publisher's database",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": "Publisher slug or UUID"
          },
          "query": {
            "type": "string",
            "description": ""
          },
          "database": {
            "type": "string",
            "description": ""
          },
          "confirm": {
            "type": "boolean",
            "description": "",
            "default": false
          }
        },
        "required": [
          "publisher",
          "query"
        ]
      }
    },
    {
      "name": "execute_paid_api",
      "description": "Execute a paid API request against a publisher's endpoint",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": ""
          },
          "method": {
            "type": "string",
            "description": "",
            "default": "POST"
          },
          "path": {
            "type": "string",
            "description": ""
          },
          "body": {
            "type": "object",
            "description": ""
          },
          "confirm": {
            "type": "boolean",
            "description": "",
            "default": false
          }
        },
        "required": [
          "publisher"
        ]
      }
    },
    {
      "name": "execute_paid_api_stream",
      "description": "Execute a paid streaming API request against a publisher's endpoint",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": ""
          },
          "method": {
            "type": "string",
            "description": "",
            "default": "POST"
          },
          "path": {
            "type": "string",
            "description": ""
          },
          "body": {
            "type": "object",
            "description": ""
          },
          "confirm": {
            "type": "boolean",
            "description": "",
            "default": false
          }
        },
        "required": [
          "publisher"
        ]
      }
    },
    {
      "name": "estimate_query_cost",
      "description": "Estimate the cost of a SQL query without executing it",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": ""
          },
          "query": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "publisher",
          "query"
        ]
      }
    },
    {
      "name": "get_supported",
      "description": "Get supported payment protocols and configuration",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "create_publisher",
      "description": "Create a new publisher in the agent store. Publishers can be databases, API integrations, or compute resources.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Publisher display name"
          },
          "slug": {
            "type": "string",
            "description": "URL-friendly slug"
          },
          "wallet_address": {
            "type": "string",
            "description": "Wallet address for payments"
          },
          "wallet_network_id": {
            "type": "string",
            "description": "Network ID (CAIP-2 format)"
          },
          "publisher_category": {
            "type": "string",
            "description": "Category: database, integration, or compute"
          },
          "database_type": {
            "type": "string",
            "description": "For database category: serendb, neon, or supabase"
          },
          "integration_type": {
            "type": "string",
            "description": "For integration category: api or mcp"
          },
          "compute_type": {
            "type": "string",
            "description": "For compute category: template, workflow, or function"
          },
          "api_url": {
            "type": "string",
            "description": "External API URL (for integration_type: api)"
          },
          "mcp_endpoint": {
            "type": "string",
            "description": "MCP server endpoint URL (for integration_type: mcp)"
          },
          "description": {
            "type": "string",
            "description": "Publisher description"
          },
          "email": {
            "type": "string",
            "description": "Contact email"
          }
        },
        "required": [
          "name",
          "slug",
          "wallet_address",
          "wallet_network_id",
          "publisher_category"
        ]
      }
    },
    {
      "name": "update_publisher",
      "description": "Update an existing publisher's details including taxonomy, endpoints, and MCP configuration.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Publisher slug to update"
          },
          "name": {
            "type": "string",
            "description": "Publisher display name"
          },
          "description": {
            "type": "string",
            "description": "Publisher description"
          },
          "resource_name": {
            "type": "string",
            "description": "Resource display name for marketplace"
          },
          "resource_description": {
            "type": "string",
            "description": "Resource description for marketplace"
          },
          "api_url": {
            "type": "string",
            "description": "External API URL (for API publishers)"
          },
          "mcp_endpoint": {
            "type": "string",
            "description": "MCP server endpoint URL (for MCP publishers)"
          },
          "email": {
            "type": "string",
            "description": "Contact email"
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the publisher is active"
          }
        },
        "required": [
          "slug"
        ]
      }
    },
    {
      "name": "update_publisher_pricing",
      "description": "Update a publisher's pricing configuration",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": ""
          },
          "price_per_call": {
            "type": "string",
            "description": "Price per API call (decimal string)"
          },
          "base_price_per_1000_rows": {
            "type": "string",
            "description": ""
          },
          "min_charge": {
            "type": "string",
            "description": ""
          },
          "max_charge": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "slug"
        ]
      }
    },
    {
      "name": "upload_publisher_logo",
      "description": "Upload a logo image for a publisher",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": ""
          },
          "logo": {
            "type": "string",
            "description": "Base64 encoded image"
          },
          "content_type": {
            "type": "string",
            "description": "image/png, image/jpeg, etc."
          }
        },
        "required": [
          "slug",
          "logo",
          "content_type"
        ]
      }
    },
    {
      "name": "list_mcp_tools",
      "description": "List tools available on an MCP publisher. Use this to discover what capabilities an MCP publisher provides.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": "Publisher slug of the MCP publisher"
          }
        },
        "required": [
          "publisher"
        ]
      }
    },
    {
      "name": "call_mcp_tool",
      "description": "Call a tool on an MCP publisher. Use list_mcp_tools first to see available tools and their input schemas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": "Publisher slug of the MCP publisher"
          },
          "tool_name": {
            "type": "string",
            "description": "Name of the tool to call"
          },
          "arguments": {
            "type": "object",
            "description": "Arguments to pass to the tool (JSON object)"
          }
        },
        "required": [
          "publisher",
          "tool_name"
        ]
      }
    },
    {
      "name": "list_mcp_resources",
      "description": "List resources available on an MCP publisher. MCP publishers can expose resources (like files, data sources) that can be read.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": "Publisher slug of the MCP publisher"
          }
        },
        "required": [
          "publisher"
        ]
      }
    },
    {
      "name": "read_mcp_resource",
      "description": "Read a resource from an MCP publisher. Use list_mcp_resources first to see available resources and their URIs.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": "Publisher slug of the MCP publisher"
          },
          "uri": {
            "type": "string",
            "description": "URI of the resource to read"
          }
        },
        "required": [
          "publisher",
          "uri"
        ]
      }
    },
    {
      "name": "list_agent_templates",
      "description": "List available agent templates in the catalog",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": ""
          },
          "language": {
            "type": "string",
            "description": "python, typescript, rust"
          },
          "limit": {
            "type": "integer",
            "description": ""
          },
          "offset": {
            "type": "integer",
            "description": ""
          }
        },
        "required": []
      }
    },
    {
      "name": "get_agent_template",
      "description": "Get details about a specific agent template by slug",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "slug"
        ]
      }
    },
    {
      "name": "invoke_agent_template",
      "description": "Invoke an agent template with input data",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": ""
          },
          "input": {
            "type": "object",
            "description": "Input data for the template"
          },
          "confirm": {
            "type": "boolean",
            "description": "",
            "default": false
          }
        },
        "required": [
          "slug",
          "input"
        ]
      }
    },
    {
      "name": "get_prepaid_balance",
      "description": "Get your SerenBucks balance",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "get_transaction_history",
      "description": "Get transaction history (deposits, charges, refunds)",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "description": "",
            "default": 50
          },
          "offset": {
            "type": "integer",
            "description": ""
          }
        },
        "required": []
      }
    },
    {
      "name": "create_prepaid_deposit",
      "description": "Deposit SerenBucks with a credit card via Stripe",
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount_usd": {
            "type": "number",
            "description": "Amount in USD (minimum $5.00)"
          }
        },
        "required": [
          "amount_usd"
        ]
      }
    },
    {
      "name": "get_x402_deposit_requirements",
      "description": "Get x402 on-chain deposit requirements for depositing USDC",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publisher": {
            "type": "string",
            "description": ""
          },
          "amount": {
            "type": "string",
            "description": "Amount to deposit (decimal string)"
          },
          "agent_wallet": {
            "type": "string",
            "description": "Agent wallet address"
          }
        },
        "required": [
          "publisher",
          "amount",
          "agent_wallet"
        ]
      }
    },
    {
      "name": "get_wallet_status",
      "description": "Get complete wallet status including SerenBucks and on-chain USDC balance",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "has_local_wallet",
      "description": "Check if a local wallet is configured",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "get_local_wallet_address",
      "description": "Get the local wallet address (requires WALLET_PRIVATE_KEY)",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    }
  ]
}