{
  "version": "1.0",
  "protocolVersion": "2025-06-18",
  "serverInfo": {
    "name": "Buildra",
    "title": "Buildra",
    "version": "1.0.0"
  },
  "description": "Build, revise, preview, and publish apps in your Buildra account. Creating a project and sending build messages spend your credits.",
  "iconUrl": "https://buildra.dev/logo.png",
  "documentationUrl": "https://buildra.dev/docs/agents",
  "url": "https://mcp.buildra.dev/mcp",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://mcp.buildra.dev/mcp"
  },
  "capabilities": {
    "tools": {}
  },
  "authentication": {
    "required": true,
    "schemes": [
      "oauth2"
    ],
    "resourceMetadataUrl": "https://mcp.buildra.dev/.well-known/oauth-protected-resource"
  },
  "instructions": "Connect with OAuth using an existing Buildra account. The granted scopes determine tools/list; this card lists the complete possible tool set. Load https://buildra.dev/skills/build-with-buildra/SKILL.md for the create, wait, answer, preview, publish workflow. An unanswered question keeps the turn waiting; a running wait result requires another wait. Daily build-turn ceilings per connection: Free 30, Pro 300 (UTC), subject to the account credit balance and per-turn cap.",
  "tools": [
    {
      "name": "list_templates",
      "description": "List project templates and the scratch fallback; does not start a build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "create_project",
      "description": "Create a project from a prompt and start its first build turn; spends credits.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "maxLength": 8000
          },
          "title": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "idempotencyKey": {
            "type": "string"
          }
        },
        "required": [
          "prompt"
        ]
      }
    },
    {
      "name": "list_projects",
      "description": "List your projects, status, preview kind, hosting, and publication state; does not start a build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          }
        }
      }
    },
    {
      "name": "get_project",
      "description": "Read a project, runtime, active session, pending question, and publication; does not start a build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ]
      }
    },
    {
      "name": "send_message",
      "description": "Send or queue a message to the build agent in a project; starts a turn and spends credits.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "text": {
            "type": "string",
            "maxLength": 8000
          },
          "idempotencyKey": {
            "type": "string"
          }
        },
        "required": [
          "projectId",
          "text"
        ]
      }
    },
    {
      "name": "wait_for_turn",
      "description": "Wait for a turn to end or need an answer; running means wait again; does not start a build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          },
          "timeoutSeconds": {
            "type": "integer",
            "minimum": 1,
            "maximum": 120,
            "default": 90
          }
        },
        "required": [
          "projectId"
        ]
      }
    },
    {
      "name": "answer_question",
      "description": "Answer a pending build question using its rpcId so the waiting turn can continue; does not start another turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "rpcId": {
            "type": "string"
          },
          "answers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "selected": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "custom": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "selected"
              ]
            }
          }
        },
        "required": [
          "projectId",
          "rpcId",
          "answers"
        ]
      }
    },
    {
      "name": "stop_turn",
      "description": "Cancel the active build turn; does not start another build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ]
      }
    },
    {
      "name": "get_transcript",
      "description": "Read paginated session events and advance afterSeq with nextSeq; does not start a build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          },
          "afterSeq": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200
          }
        },
        "required": [
          "projectId"
        ]
      }
    },
    {
      "name": "get_preview",
      "description": "Get an expiring preview share link; terminal and none projects have no URL; does not start a build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "ttlMinutes": {
            "type": "integer",
            "minimum": 1,
            "maximum": 60,
            "default": 30
          }
        },
        "required": [
          "projectId"
        ]
      }
    },
    {
      "name": "publish",
      "description": "Request publication to buildra.page, subject to hosting limits; asynchronous and does not start an AI build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ]
      }
    },
    {
      "name": "get_publication",
      "description": "Read publication status, URL, and any last error after publish; does not start a build turn.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ]
      }
    },
    {
      "name": "get_credits",
      "description": "Read the credit balance, tier, quotas, and billing link; does not spend build credits.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
  ],
  "_meta": {
    "dev.buildra/contact": "mailto:support@buildra.dev",
    "dev.buildra/issuer": "https://api.buildra.dev"
  }
}
