buildin-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@buildin-mcpfind all pages about project Alpha"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
buildin-mcp
An MCP (Model Context Protocol) server for Buildin.ai — gives LLMs (Claude Desktop, Claude Code, Cursor, etc.) full access to pages, databases, blocks, search, users, and Markdown helpers. 19 tools total.
Getting your API token
Go to Buildin.ai Integrations
Create a new Plugin
In the permissions section, enable:
Read data
Write data
Edit data
Copy the generated token (starts with
sk-...)
Related MCP server: Notion MCP Server
Quick start
BUILDIN_API_TOKEN=sk-... npx buildin-mcpThe server starts on stdio and is ready to accept MCP requests.
Usage with MCP clients
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"buildin": {
"command": "npx",
"args": ["-y", "buildin-mcp"],
"env": {
"BUILDIN_API_TOKEN": "sk-..."
}
}
}
}Claude Code
claude mcp add buildin -e BUILDIN_API_TOKEN=sk-... -- npx -y buildin-mcpCursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"buildin": {
"command": "npx",
"args": ["-y", "buildin-mcp"],
"env": {
"BUILDIN_API_TOKEN": "sk-..."
}
}
}
}Windsurf / any stdio MCP client
BUILDIN_API_TOKEN=sk-... npx -y buildin-mcpOpenCode
Add to your project's opencode.jsonc or global ~/.config/opencode/opencode.jsonc (inside the "mcp" section):
"buildin": {
"type": "local",
"command": ["npx", "-y", "buildin-mcp"],
"environment": {
"BUILDIN_API_TOKEN": "sk-..."
},
"enabled": true
}Note: OpenCode uses
"environment"(not"env") for passing environment variables to local MCP servers.
Install from source (optional)
git clone https://github.com/ekho/buildin-mcp.git
cd buildin-mcp
npm install
npm run build
node dist/index.jsEnvironment variables
Variable | Required | Description |
| yes | Plugin token from Buildin.ai |
| no | Override API base (default: |
| no | Set to |
Tools (19 total)
Pages (5)
buildin_create_page— POST /v1/pagesbuildin_get_page— GET /v1/pages/{id}buildin_update_page— PATCH /v1/pages/{id}buildin_archive_page— PATCH /v1/pages/{id} witharchived=truebuildin_get_page_children— GET /v1/blocks/{page_id}/children
Databases (4)
buildin_create_database— POST /v1/databasesbuildin_get_database— GET /v1/databases/{id}buildin_query_database— POST /v1/databases/{id}/querybuildin_update_database— PATCH /v1/databases/{id}
Blocks (5)
buildin_get_block— GET /v1/blocks/{id}buildin_get_block_children— GET /v1/blocks/{id}/childrenbuildin_append_block_children— PATCH /v1/blocks/{id}/childrenbuildin_update_block— PATCH /v1/blocks/{id}buildin_delete_block— DELETE /v1/blocks/{id}
Search & Users (2)
buildin_search— POST /v1/searchbuildin_get_me— GET /v1/users/me
Markdown helpers (3)
buildin_append_markdown— convert Markdown to Buildin blocks and appendbuildin_get_page_markdown— read a page's contents as Markdownbuildin_search_and_fetch— search + auto-fetch contents of the top N pages
Buildin.ai does not expose a Comments API or a hard-delete for pages — archive is the documented way to remove pages.
Development
Runtime: Node 18+, TypeScript 5.6, ESM.
Transport: stdio only.
Logging: stderr only — stdout is reserved for MCP JSON-RPC. Never
console.log.Retries: automatic on 429 and 5xx (except 501), exponential backoff, 3 attempts.
Verify
npm run typecheck # tsc --noEmit
npm run build # compiles to dist/
npm test # unit tests for markdown converters
npm run smoke # stdio JSON-RPC: initialize + tools/list must return 19 toolsLicense
MIT
Available Tools
20 toolsbuildin_append_block_childrenAppend children blocksC
Append one or more child blocks to a parent block (or page). children is an array of block objects ({type, data}). Returns the list of created blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | Buildin object ID (UUID-like). | |
| children | Yes | ||
| after | No | Optional: ID of the child to insert the new children after. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states that the tool appends children and returns created blocks, but does not mention that this is a write operation, potential for data modification, permission requirements, rate limits, or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: two sentences that front-load the purpose and quickly explain the children format and return value. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (many block types, nested rich text), the description is too sparse. It lacks information on allowed block types, nesting capabilities, error handling, and pagination of results. No output schema is provided, but the return value is mentioned, though not fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the description adds some value by summarizing the children parameter as an array of {type, data} objects. However, it does not elaborate on block_id or after beyond what the schema provides, and the schema already contains detailed structure for block objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (append child blocks to a parent block/page) and the resource (parent block/page). It indicates the input format (array of block objects with type and data) and the return value (list of created blocks). However, it does not distinguish from similar sibling tools like buildin_insert_blocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as buildin_insert_blocks or buildin_append_markdown. The description does not specify prerequisites, limitations, or contexts where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_append_markdownAppend Markdown to a Buildin pageA
Convert a Markdown string into Buildin blocks and append them to the given page/block. Supports headings (# ## ###), lists, task lists, code fences, blockquotes, dividers, and inline bold/italic/code/link. Returns the Buildin response with the created block ids.
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | The page id or parent block id to append to. | |
| markdown | Yes | Markdown source. Each top-level block becomes one Buildin block. | |
| after | No | Optional: id of the existing child to insert after. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses conversion, supported formats, and that it returns block ids. Lacks details on error handling or idempotency, but is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, well-structured. Efficiently conveys purpose, supported elements, and return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema but description mentions return includes block ids. Covers parameters and conversion behavior. Could mention error cases or prerequisites, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value by clarifying that 'Each top-level block becomes one Buildin block' for the markdown parameter, going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts Markdown to Buildin blocks and appends them to a given page or block, listing supported elements like headings and lists. This distinguishes it from siblings like buildin_insert_blocks and buildin_get_page_markdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for converting Markdown into blocks, which is clear. It does not explicitly state when not to use or mention alternatives, but the context of sibling tools provides differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_archive_pageArchive or unarchive Buildin pageA
Convenience wrapper over update_page: sets archived=true by default (pass archived=false to restore). Buildin.ai does not expose hard-delete for pages.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| archived | No | Defaults to true (archive). Pass false to unarchive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden; it discloses default action, reversibility, and absence of hard-delete. Could mention idempotency or side effects, but sufficient for simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. Front-loaded with key information, earning each word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple wrapper: explains purpose, default, and limitation. Lacks mention of idempotency or error scenarios, but not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning to archived parameter (defaults and restore) beyond schema's description and default. For page_id, it's implied through context but no extra detail. Compensates for 50% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (archive/unarchive), resource (page), and positions as convenience wrapper over update_page. Distinguishes from sibling update_page by adding context about no hard-delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains default behavior (archived=true) and how to reverse (pass archived=false). Implicitly suggests using update_page for other updates, but lacks explicit when-not or alternative list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_create_databaseCreate Buildin databaseA
Create a new Buildin.ai database under a page parent. Must include at least one property of type 'title'. Set is_inline=true for inline databases.
| Name | Required | Description | Default |
|---|---|---|---|
| parent | Yes | Usually a page parent: { page_id: '...' }. | |
| title | Yes | Array of rich-text runs. | |
| properties | Yes | Map of property name -> schema definition. At least one property of type 'title' must be present. | |
| icon | No | Icon: emoji or external url. Both discriminator-less and typed forms accepted to match Buildin examples. | |
| cover | No | Cover image (external url only). | |
| is_inline | No | true for inline databases embedded on a page, false for full-page databases. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention permissions, side effects, idempotency, or what happens on success/failure. The only behavioral information is the requirement for a title property and the is_inline flag, which are more like input constraints than behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences that front-load the main action (create database) and then add key constraints. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential constraints for creation (parent, title property, is_inline) but does not describe the return value (no output schema) or any error conditions. Given the tool's complexity (6 parameters, nested objects), the description is somewhat brief but adequate for a basic create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds practical meaning beyond the schema by clarifying that the parent should be a 'page parent', emphasizing that properties must include a title type, and noting that is_inline=true is for inline databases. This provides extra guidance that the schema's individual property descriptions do not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create) and resource (Buildin.ai database under a page parent), with specific constraints (must include at least one title property, is_inline for inline databases). This distinguishes it from sibling tools like buildin_create_page, which create pages, not databases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides basic context on where to create (under a page parent) and key constraints (title property, is_inline), but does not explicitly state when to use this tool versus alternatives like query_database or update_database. It offers implied usage but no exclusions or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_create_pageCreate Buildin pageA
Create a new page in Buildin.ai. The parent may be a page_id, database_id, space_id, or block_id. When parent is a database, properties must match the database schema. Returns the created page object.
| Name | Required | Description | Default |
|---|---|---|---|
| parent | Yes | Parent reference. Accepts both {type, <id_field>} and the shorter {<id_field>} form. | |
| properties | Yes | Page properties. For database children, must match the database schema. For other parents, typically { title: { title: [{ text: { content: '...' } }] } }. | |
| icon | No | Icon: emoji or external url. Both discriminator-less and typed forms accepted to match Buildin examples. | |
| cover | No | Cover image (external url only). | |
| children | No | Initial child blocks to append after creation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It accurately states that the tool returns the created page object and mentions the parent types and property requirement for databases. However, it does not disclose potential side effects, error conditions, authentication needs, rate limits, or what happens if properties do not match the database schema (e.g., validation errors). This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the primary purpose immediately ("Create a new page in Buildin.ai"). Every sentence adds value without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, nested objects) and lack of annotations or output schema, the description covers the key aspects: purpose, parent types, database-specific requirement, and return object. It could mention potential error scenarios or prerequisites, but the schema fills in the details, making this reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the schema already provides descriptions for all parameters. The description adds a bit of context by enumerating parent types and restating the database property requirement, but it does not add significant new meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'create' and resource 'page in Buildin.ai', distinguishing it from sibling tools like 'buildin_create_database' or 'buildin_append_block_children'. It also specifies the parent types (page_id, database_id, etc.), making the purpose clear and unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use the tool, explaining the acceptable parent types and the special case for database parents requiring matching properties. However, it does not explicitly state when not to use it or compare with alternatives like 'buildin_update_page' or 'buildin_archive_page', but the provided context is sufficient for most scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_delete_blockDelete Buildin blockA
Hard-delete a block by ID (DELETE /v1/blocks/{block_id}). This is NOT the same as archiving a page — it's a permanent removal.
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | Buildin object ID (UUID-like). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares 'permanent removal' which is critical behavioral info, but lacks details on error handling, idempotency, or required permissions. Given no annotations, more transparency would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no fluff. Action and key differentiator presented upfront. Optimal length for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes the core action and key distinction from archiving. Missing mention of error scenarios or idempotency, but given simplicity (one param, no output schema), it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter block_id is fully documented in the schema (100% coverage). The description only restates it as 'Buildin object ID (UUID-like)', adding no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'hard-delete a block by ID' and explicitly distinguishes from archiving a page, making its purpose unambiguous relative to the sibling tool buildin_archive_page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when not to use it (not the same as archiving), but does not mention any prerequisites or alternative deletion tools. Still helpful for differentiating from the archive sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_get_blockGet Buildin blockA
Retrieve a single block object by ID. Does not include children.
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | Buildin object ID (UUID-like). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Clearly states it does not include children, a key behavioral trait. No annotations exist, but description covers basic read behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single succinct sentence, front-loaded with purpose, zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple retrieval tool with one parameter and no output schema. Describes operation and a key behavioral constraint, though no mention of error handling or return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for block_id. Tool description adds no new meaning beyond the schema's 'Buildin object ID (UUID-like).' Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Verb 'Retrieve' + resource 'single block object by ID' explicitly states purpose. Differentiates from sibling buildin_get_block_children by noting it does not include children.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when to use (retrieve block without children) and differentiates from children-fetching sibling, but no explicit mention of when-not or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_get_block_childrenList children of a blockB
List immediate children of a block (or page) with pagination. Use this instead of scraping a page to render its contents.
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | Buildin object ID (UUID-like). | |
| page_size | No | ||
| start_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('List') and immediate children, but with no annotations provided, it misses details like error handling, rate limits, or pagination behavior (default page size, cursor format). The description is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a clear recommendation, front-loading the core purpose. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose and a usage scenario, but lacks details on pagination mechanics, response format (no output schema), and how to interpret the start_cursor. For a simple list tool, it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the block_id parameter has a schema description ('Buildin object ID (UUID-like).'), and the tool description does not add meaning for page_size or start_cursor. With 33% schema coverage, the description fails to compensate, leaving users to guess parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List immediate children'), the resource ('block (or page)'), and includes pagination. However, it does not differentiate from the sibling tool 'buildin_get_page_children', which may cause confusion about which to use for page children.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this tool instead of scraping, providing a clear alternative. But it lacks guidance on when to use this versus sibling tools like buildin_get_block_children vs buildin_get_page_children, and no mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_get_databaseGet Buildin databaseA
Retrieve a Buildin.ai database by id, including its property schema.
| Name | Required | Description | Default |
|---|---|---|---|
| database_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that the response includes the property schema, which is helpful. However, with no annotations provided, the description does not explicitly state that this is a read-only operation or disclose any other behavioral traits (e.g., authentication, rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It could be slightly more structured but is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 param, no output schema, no annotations), the description is adequate but lacks detail on return format or any limitations. The added detail about property schema helps, but overall it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; the description does not add any meaning to the single parameter 'database_id' beyond stating it is an id. No example or format guidance is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve'), the resource ('Buildin.ai database'), and what is included ('property schema'). This distinguishes it from sibling tools like query_database or create_database.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as query_database or get_page. The context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_get_meGet current Buildin bot identityA
Return information about the bot that owns the current API token (GET /v1/users/me). Use this to verify authentication is working.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It describes the return value but does not explicitly state that it is a safe, read-only operation or mention any behavioral traits like idempotency or rate limits. Basic transparency is present but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the purpose, and includes a usage hint. Every word is useful with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description adequately explains the tool's purpose and a key use case. However, it does not describe the return format or fields, which would be helpful for an agent to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the input schema is empty with 100% coverage. The description does not add parameter info because none are needed. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns bot identity info and includes the HTTP endpoint. It is distinct from sibling tools that deal with blocks, pages, databases, and search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this for verifying authentication. While it doesn't specify when not to use, the context of siblings makes the tool's niche clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_get_pageGet Buildin pageA
Retrieve a Buildin.ai page by its id. Returns the page object including properties, icon, cover, parent and url.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It describes the return object but doesn't mention read-only nature, error handling, or authorization requirements, which are important for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with purpose, and contains no extraneous information. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and no output schema, the description covers the return object details adequately. However, it could be more complete by mentioning read-only behavior or common error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the only parameter 'page_id', and the description adds no additional meaning beyond 'by its id'. It does not provide format, constraints, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieve a Buildin.ai page by its id', specifying a specific verb and resource. It distinguishes from sibling tools like buildin_get_block and buildin_get_database by focusing on pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a page by ID but provides no explicit guidance on when to use this tool versus alternatives, nor any context on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_get_page_childrenGet Buildin page childrenA
List top-level children blocks of a page using GET /v1/blocks/{page_id}/children. Returns a paginated list with next_cursor and has_more.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | The page id — Buildin exposes page children through /v1/blocks/{page_id}/children. | |
| start_cursor | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It mentions pagination but does not state that the operation is read-only (safe) or any auth/rate limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: one for purpose and endpoint, one for pagination. No extraneous information. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides the endpoint and pagination details, but omits the structure of the response (no output schema) and does not mention authorization or error conditions. Adequate for a simple tool but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33% (only page_id described). The description adds context about pagination (next_cursor, has_more) but fails to describe start_cursor and page_size parameters explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List', the resource 'top-level children blocks of a page', and the API endpoint. It distinguishes from sibling tools like buildin_get_block_children by specifying 'page children'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'top-level children', suggesting recursion for nested blocks, but does not explicitly mention when to use this vs alternatives like buildin_get_block_children.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_get_page_markdownRead a Buildin page as MarkdownA
Fetch every child block of a page (walks pagination, follows has_children) and render the result as Markdown. Useful for quickly summarising or ingesting a page.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page id whose content to read. | |
| max_depth | No | How deep to recurse into child blocks (default 2). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: walking pagination, following has_children, and rendering Markdown. With no annotations, this is sufficient transparency. It could mention that the operation is read-only, but that is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each adding distinct value. It is front-loaded with the action and purpose, with no wasted words. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains pagination and recursion, which are important for a tool that traverses blocks. It does not describe the output format beyond Markdown, but since there is no output schema, this suffices. Could be more complete, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters. The description adds behavioral context: 'walks pagination, follows has_children' and clarifies the meaning of max_depth with a default value. This provides added value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches child blocks and renders them as Markdown, which is a specific resource and output format. It distinguishes from siblings like buildin_get_page (likely JSON) and buildin_get_block_children (raw blocks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('quickly summarising or ingesting a page') and implies when to use it over alternative tools. However, it does not explicitly state when not to use it or list alternative tools for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_insert_blocksInsert blocks at a specific positionA
Insert new blocks after a specific child block within a parent. Since the Buildin.ai API only supports appending to the end, this works by: 1) deep-cloning all blocks after the insertion point, 2) deleting them, 3) appending the new blocks, 4) re-appending the cloned blocks. WARNING: block IDs of re-created blocks will change. This is NOT atomic — if interrupted mid-operation, blocks may be lost. Use with caution.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | Yes | Page or parent block ID containing the children. | |
| after | Yes | ID of the existing child block to insert after. | |
| children | Yes | New blocks to insert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the burden. It details the workaround steps (clone, delete, append, re-append) and warns about side effects: block ID changes and non-atomicity. It does not mention rate limits or auth, but for a mutation tool with no annotations, this is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three parts: purpose, workaround steps, and warnings. Every sentence adds value. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with a workaround, the description covers implementation and risks. It lacks details on return values or error handling, but given no output schema, it provides enough context for an agent to choose and use safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add parameter-level semantics beyond what the schema provides (parent_id, after, children). It implies the role of 'after' but no extra detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Insert' and resource 'blocks after a specific child block within a parent'. It distinguishes itself from sibling tools like 'buildin_append_block_children' by specifying insertion position and workaround.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (insert at specific position) and provides warnings about non-atomicity and ID changes. It implicitly guides against using when atomicity is needed, but does not explicitly compare to all siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_query_databaseQuery Buildin databaseA
Query rows (pages) of a Buildin.ai database with optional filter and sort. Returns a paginated list; use next_cursor / has_more to continue.
| Name | Required | Description | Default |
|---|---|---|---|
| database_id | Yes | ||
| filter | No | Buildin filter object. Structure mirrors Notion-style filters. | |
| sorts | No | Array of sort specs, e.g. [{ property: 'Name', direction: 'ascending' }]. | |
| start_cursor | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses pagination behavior with next_cursor/has_more, which is important for a query tool. No annotations exist, so the description carries the transparency burden and does so adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the purpose and key behavior (pagination), with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and five parameters, the description is basic. It covers core functionality and pagination but omits explanation of start_cursor relative to next_cursor, and lacks details on filter/sort structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 40% schema description coverage, the description adds no additional parameter details beyond mentioning optional filter and sort. It does not explain the structure of filter or sort objects or the start_cursor/page_size parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries rows of a Buildin database with optional filter and sort, distinguishing it from sibling tools that create, update, or archive pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for querying database rows but does not explicitly guide when to use this tool over alternatives like buildin_search or buildin_search_and_fetch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_searchSearch Buildin pagesC
Search across all pages the bot has access to. Returns a paginated list of page objects. query is free-form; empty string returns recently-updated pages.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search keywords. Empty/omitted lists recent pages. | |
| start_cursor | No | ||
| page_size | No | 1..100, default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral info. It only says 'returns a paginated list' but lacks details on sorting, permissions, rate limits, or result structure beyond basic pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences, front-loaded with the main purpose. Could be slightly more structured but efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and moderate parameter count, the description is insufficient. It doesn't explain the structure of returned page objects, ordering, or limits on results, leaving gaps for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, but the description only adds minimal extra info about query being free-form. The start_cursor parameter is left undocumented in both schema and description, forcing the agent to guess its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches across all pages and returns a paginated list. It distinguishes from get_page and query_database, but not explicitly from buildin_search_and_fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions that query is free-form and empty returns recent pages, giving some usage context. However, no guidance on when to use this vs. sibling tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_search_and_fetchSearch Buildin and fetch top results as MarkdownA
Run /v1/search and, for each hit that is a page, fetch its full content as Markdown. Returns an array of { id, title, url, markdown }. Limit defaults to 3 to stay within rate limits.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query. | |
| limit | No | Max pages to fetch (1..10, default 3). | |
| max_depth | No | Recursion depth for each page (default 1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the rate-limitation behavior via the limit default and return structure, but does not mention error handling, authentication requirements, or what happens when a page fetch fails. The transparency is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action. No redundant or extraneous information. Every sentence contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return format and limit's purpose, which is helpful given no output schema. However, it fails to mention the max_depth parameter, leaving a gap in completeness for a tool with three parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds a rate-limit context for the limit parameter but does not explain max_depth. For query, it merely restates 'Search query.' which is already in schema. Thus, minimal additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action: search and fetch page content as Markdown. It distinguishes from siblings like buildin_search (which likely only returns search results) and buildin_get_page_markdown (single page fetch) by combining both steps and returning an array with id, title, url, markdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the limit defaults to 3 to stay within rate limits, providing a usage hint. However, it does not explicitly state when to use this tool versus alternatives (e.g., buildin_search then buildin_get_page_markdown separately), nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_update_blockUpdate Buildin blockA
Update a block's content or state. For text blocks, pass data: { rich_text: [...] }. To toggle a to_do, pass data: { checked: true }. To archive, pass archived: true.
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | Buildin object ID (UUID-like). | |
| data | No | Partial data for the block's type-specific payload. | |
| archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses mutation behaviors (update, toggle, archive) but omits side effects (e.g., versioning, permissions) and error handling. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each purposeful: general purpose, text block example, to_do and archive examples. No redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the most common updates (text, to_do, archive) but does not mention other block types or error scenarios. Given the absence of output schema, it is reasonably complete for a typical agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema by explaining how to use the data and archived parameters for common tasks. The schema coverage is 67%, and the description compensates well, though it does not cover all possible block types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates a block's content or state, and provides specific examples (text blocks, to_do toggle, archive). This distinguishes it from sibling tools like delete or page updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The examples guide when to use specific parameters (e.g., for text blocks vs. to_do). However, it lacks explicit mention of when not to use this tool compared to update_page or update_database.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_update_databaseUpdate Buildin databaseA
Update a database's title, icon, cover, properties schema, or archive flag. Only fields you pass are modified. To remove a property, set its value to null.
| Name | Required | Description | Default |
|---|---|---|---|
| database_id | Yes | ||
| title | No | Array of rich-text runs. | |
| icon | No | Icon: emoji or external url. Both discriminator-less and typed forms accepted to match Buildin examples. | |
| cover | No | Cover image (external url only). | |
| properties | No | Pass null for a property to remove it. | |
| archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It discloses partial update behavior ('Only fields you pass are modified') and property removal specifics, but does not cover idempotency, side effects on existing data, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences with no redundant text. However, it could be slightly more structured or include a brief summary of the return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex update tool with 6 parameters and nested objects, the description covers core functionality but omits details on response format, error scenarios, or behavior when updating schema that affects existing data. With no output schema, some return value context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (4 of 6 parameters have descriptions). The description adds minimal value beyond the schema, mainly reiterating the removal behavior already noted in the properties parameter's schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a database's title, icon, cover, properties schema, or archive flag' using a specific verb and resource. It lists the modifiable fields and distinguishes from siblings like buildin_create_database and buildin_update_page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when modifying an existing database but lacks explicit when-to-use, when-not-to-use, or comparisons with alternatives. It does not provide guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buildin_update_pageUpdate Buildin pageA
Update a Buildin.ai page: change properties, icon, cover, or archive/unarchive it. Only the fields you pass are modified. Pass archived=true to soft-delete.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| properties | No | Record of page properties keyed by property name or id. | |
| icon | No | Icon: emoji or external url. Both discriminator-less and typed forms accepted to match Buildin examples. | |
| cover | No | Cover image (external url only). | |
| archived | No | Set true to soft-delete (archive) the page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses partial update behavior and soft-delete capability, but lacks details on authentication, rate limits, idempotency, or side effects on unchanged fields. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences—no wasted words. Front-loaded with purpose, then key behavioral note. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and nested objects, the description covers the main functionality but omits return value details and explicit differentiation from sibling tools. Sufficient for basic use, but lacks completeness for advanced scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (80%), so baseline is 3. Description adds value by explaining partial application of parameters and clarifying the archived parameter semantics (soft-delete). Not redundant, though could elaborate on property structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb and resource ('Update a Buildin.ai page') and lists specific modifiable aspects (properties, icon, cover, archive/unarchive). It distinguishes itself from siblings like buildin_archive_page by offering archival as an option within the update, though not explicitly differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for partial updates ('Only the fields you pass are modified') and mentions specific use case for archiving. However, it does not explicitly exclude use of sibling tool buildin_archive_page for sole archiving, leaving ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
20 tool updates
v0.3.1- First observed
buildin_append_block_children - First observed
buildin_append_markdown - First observed
buildin_archive_page - First observed
buildin_create_database - First observed
buildin_create_page - First observed
buildin_delete_block - First observed
buildin_get_block - First observed
buildin_get_block_children - First observed
buildin_get_database - First observed
buildin_get_me - First observed
buildin_get_page - First observed
buildin_get_page_children - First observed
buildin_get_page_markdown - First observed
buildin_insert_blocks - First observed
buildin_query_database - First observed
buildin_search - First observed
buildin_search_and_fetch - First observed
buildin_update_block - First observed
buildin_update_database - First observed
buildin_update_page
TDQS
Each tool targets a distinct resource and action: pages, blocks, databases, search, and special operations like markdown import. There is no ambiguity, as even similar operations like get_block and get_page are clearly differentiated by resource type.
All tools follow a consistent verb_noun pattern with the server prefix 'buildin_' (e.g., create_page, get_block, query_database). The naming is uniform and predictable, making it easy for an agent to infer functionality from the name.
20 tools are well-scoped for a knowledge management API covering pages, blocks, databases, and search. Each tool serves a distinct purpose, and the count is neither too small to be useful nor too large to be unwieldy.
The tool surface covers CRUD for pages, blocks, and databases, plus search, user info, and convenience functions like markdown conversion. Minor gaps exist (e.g., no explicit 'create block' tool, but block creation is achieved via append operations), but overall it supports all major workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Markdown workspace for AI agents: read, write, organize, and share markdown documents.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Publish, update, list, and delete Markdown pages on Booklet directly from your AI assistant.
Web data tools for AI agents: pages as markdown, search, maps, commerce, jobs, AI answers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Language Models to interact with Notion workspaces through standardized tools for searching, reading, creating, and updating pages and databases.119MIT
- AlicenseBqualityDmaintenanceEnables AI agents to interact with Notion workspaces through the Notion API. Supports reading, writing, commenting, and managing Notion pages and databases with optimized token consumption for AI agents.19135,702MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI workflows to integrate with Notion workspaces, supporting page and database creation, queries with filters and sorting, content updates, and workspace-wide search operations.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Notion workspaces through the Notion API, allowing them to search, read, create, update pages and databases, and manage comments using natural language commands.135,702MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ekho/buildin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server