buildin-mcp
Click on "Deploy 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-mcp find 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.
Inputs: block_id (required), children (required), after.
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.
Inputs: block_id (required), markdown (required), after.
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.
Inputs: page_id (required), archived.
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.
Inputs: parent (required), title (required), properties (required), icon, +2 more.
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.
Inputs: parent (required), properties (required), icon, cover, +1 more.
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.
Inputs: block_id (required).
buildin_get_blockGet Buildin blockA
Retrieve a single block object by ID. Does not include children.
Inputs: block_id (required).
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.
Inputs: block_id (required), page_size, start_cursor.
buildin_get_databaseGet Buildin databaseA
Retrieve a Buildin.ai database by id, including its property schema.
Inputs: database_id (required).
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.
Inputs: no named parameters.
buildin_get_pageGet Buildin pageA
Retrieve a Buildin.ai page by its id. Returns the page object including properties, icon, cover, parent and url.
Inputs: page_id (required).
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.
Inputs: page_id (required), start_cursor, page_size.
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.
Inputs: page_id (required), max_depth.
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.
Inputs: parent_id (required), after (required), children (required).
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.
Inputs: database_id (required), filter, sorts, start_cursor, +1 more.
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.
Inputs: query, start_cursor, page_size.
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.
Inputs: query (required), limit, max_depth.
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.
Inputs: block_id (required), data, archived.
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.
Inputs: database_id (required), title, icon, cover, +2 more.
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.
Inputs: page_id (required), properties, icon, cover, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 20 tools
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
Related MCP Connectors
Markdown workspace for AI agents: read, write, organize, and share markdown documents.
Find, write, publish and check pages and API references in your DeveloperHub docs from an AI client
Convert PDFs, Office docs, websites and audio into AI-ready Markdown, then search and ask your docs.
Personal context for every AI: search, read, and write back to your private Markdown library.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Language Models to interact with Notion workspaces through standardized tools for searching, reading, creating, and updating pages and databases.118MIT
- 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.19265,848 npmMIT
- 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.265,848 npmMIT