Server Configuration
Describes the environment variables required to run the server.
Name | Required | Description | Default |
---|---|---|---|
RBT_ROOT_DIR | Yes | The path to your RBT documents directory |
Schema
Prompts
Interactive templates invoked by user choice
Name | Description |
---|---|
No prompts |
Resources
Contextual data attached and managed by the client
Name | Description |
---|---|
No resources |
Tools
Functions exposed to the LLM to take actions
Name | Description |
---|---|
get_outline | Get document outline (structure without blocks).
**BEST PRACTICE: Always use this FIRST before editing documents!**
- See what sections exist
- Find section/block IDs for editing
- Saves tokens by not loading full content
Returns lightweight document structure with metadata, info, and section tree.
Significantly reduces token consumption compared to reading full document.
Args:
project_id: Project identifier
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
**For TASK documents: supports fuzzy matching! Just provide the index number.**
Returns:
Document outline JSON with metadata, info, title, and sections
Example:
# RBT document
get_outline(project_id="knowledge-smith", feature_id="rbt-mcp-tool", doc_type="BP")
# TASK document (FUZZY SEARCH - just use the index!)
get_outline(project_id="knowledge-smith", feature_id="rbt-mcp-tool",
doc_type="TASK", file_path="001") # Matches TASK-001-*.md
# General document
get_outline(project_id="knowledge-smith", file_path="architecture/overview.md")
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-005-GetOutlineTool-Server-Setup |
read_content | Read section or block by ID.
**KEY FEATURE: Read ONLY what you need!**
- Read a single block (blk-*) β saves tokens, don't read the whole section
- Read a section (sec-*) β gets section + all its blocks
**TIP: Use get_outline() first to find available IDs**
Automatically determines content type based on ID prefix:
- sec-* β reads section with blocks and nested sections
- blk-* β reads single block data
Args:
project_id: Project identifier
content_id: Content ID (section or block ID starting with 'sec-' or 'blk-')
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Content data (section or block)
Example:
# Read section
read_content(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="BP",
content_id="sec-components"
)
# Read block
read_content(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="BP",
content_id="blk-component-table"
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-006-ReadSectionTool |
update_section_summary | Update section summary text.
Args:
project_id: Project identifier
section_id: Section ID to update
new_summary: New summary text
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Success message
Example:
update_section_summary(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="BP",
section_id="sec-components",
new_summary="Updated component specifications with new requirements"
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-007-UpdateSectionSummaryTool-Server-Setup |
create_section | Create new section under specified parent.
Note: For RBT documents, cannot create root sections (only sub-sections).
Args:
project_id: Project identifier
parent_id: Parent section ID
title: Section title
summary: Optional section summary
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
New section ID
Example:
create_section(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="REQ",
parent_id="sec-use-cases",
title="Additional Use Cases",
summary="Extended scenarios for document editing"
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-008-CreateSectionTool |
create_block | Create new block in specified section.
**TIP: Block IDs are auto-generated, but you can identify blocks later by their content.
Consider adding meaningful content/titles to make blocks easier to find with get_outline().**
Args:
project_id: Project identifier
section_id: Section ID to add block to
block_type: Block type - paragraph/code/list/table
content: Content for paragraph/code blocks
items: Items for list blocks
language: Language for code blocks
header: Header row for table blocks
rows: Data rows for table blocks
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
New block ID
Example:
# Create paragraph
create_block(
project_id="knowledge-smith",
file_path="docs/guide.md",
section_id="sec-intro",
block_type="paragraph",
content="This is a new paragraph."
)
# Create list
create_block(
project_id="knowledge-smith",
file_path="docs/guide.md",
section_id="sec-features",
block_type="list",
items=["Feature 1", "Feature 2"]
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-009-CreateBlockTool |
update_block | Update existing block content based on block type.
Supports updating different block types:
- paragraph: content
- code: content, language (optional)
- list: title (optional), items
- table: header, rows
Args:
project_id: Project identifier
block_id: Block ID to update
content: New content for paragraph/code blocks
title: New title for list blocks
items: New items for list blocks
language: Programming language for code blocks
header: New header for table blocks
rows: New rows for table blocks
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Success message dictionary
Example:
# Update paragraph block
update_block(
project_id="knowledge-smith",
file_path="docs/guide.md",
block_id="blk-paragraph-1",
content="Updated paragraph content."
)
# Update list block
update_block(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="REQ",
block_id="blk-requirements",
title="**Updated Requirements**",
items=["Req 1", "Req 2", "Req 3"]
)
# Update code block
update_block(
project_id="knowledge-smith",
file_path="docs/examples.md",
block_id="blk-code-sample",
content="def hello():\n print('Hello')",
language="python"
)
# Update table block
update_block(
project_id="knowledge-smith",
feature_id="test",
doc_type="BP",
block_id="blk-table-data",
header=["Name", "Value"],
rows=[["Item1", "100"], ["Item2", "200"]]
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-010-UpdateBlockTool |
delete_block | Delete block from document.
Args:
project_id: Project identifier
block_id: Block ID to delete
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Success message
Example:
delete_block(
project_id="knowledge-smith",
file_path="docs/guide.md",
block_id="blk-paragraph-2"
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-011-DeleteBlockTool |
append_list_item | Append item to list block.
Args:
project_id: Project identifier
block_id: List block ID
item: Item text to append
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Success message
Example:
append_list_item(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="REQ",
block_id="blk-func-req-list",
item="New functional requirement item"
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-012-AppendListItemTool |
update_table_row | Update specific table row.
Args:
project_id: Project identifier
block_id: Table block ID
row_index: Row index to update (0-based, excluding header)
row_data: New row data (list of cell values)
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Success message
Example:
update_table_row(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="BP",
block_id="blk-component-spec-table",
row_index=0,
row_data=["PathResolver", "Updated description", "new input", "new output"]
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-013-UpdateTableRowTool |
append_table_row | Append a new row to a table block.
Args:
project_id: Project identifier
block_id: Table block ID
row_data: Row data (list of cell values)
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Success message
Example:
append_table_row(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="BP",
block_id="blk-component-spec-table",
row_data=["new_tool", "New tool description", "inputs", "outputs", "TASK-XXX", "Acceptance criteria"]
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-017-AppendTableRowTool |
create_document | Create new document from template with placeholder replacement.
Creates a new document by loading the appropriate template (Task/Blueprint/Requirement),
auto-filling common placeholders, and saving as .new.md with complete structure.
Auto-filled placeholders (from parameters):
- [project-id]: From project_id parameter
- [feature-id]: From feature_id parameter
- [feature-name]: From feature_id parameter
- [YYYY-MM-DD]: Current date (auto-generated)
Custom placeholders (need to be in replacements):
- [task-name]: Task name (for Task type)
- [δ»»εζ¨ι‘]/[ιζ±ζ¨ι‘]/[θεζ¨ι‘]: Document titles
- Any other template-specific placeholders
Args:
project_id: Project identifier (auto-fills [project-id])
doc_type: Document type - "Task", "Blueprint", "Requirement" for RBT documents,
or custom types like "General", "Architecture", "Guide", "API" for general documents.
doc_type serves as classification for better document organization and retrieval.
replacements: Dictionary of custom placeholder -> value mappings
feature_id: Feature identifier (auto-fills [feature-id] and [feature-name])
file_path: File path within docs/ (for general documents)
Returns:
Success message with created file path
Example (Task document):
create_document(
project_id="knowledge-smith",
doc_type="Task",
feature_id="rbt-mcp-tool",
replacements={
"task-name": "PathResolver",
"δ»»εζ¨ι‘": "ε―¦δ½ PathResolver θ·―εΎθ§£ζθι©θ"
}
)
# project-id, feature-id, feature-name, date ζθͺεε‘«ε
₯
Example (Blueprint document):
create_document(
project_id="knowledge-smith",
doc_type="Blueprint",
feature_id="rbt-mcp-tool",
replacements={
"θεζ¨ι‘": "RBT ζδ»Άη·¨θΌ― MCP Tool"
}
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-014-CreateDocumentTool |
update_info | Update info section fields (status, update_date, dependencies).
Supports partial updates - only provided fields are updated, others remain unchanged.
At least one field must be provided for update.
Args:
project_id: Project identifier
status: Optional new status value
update_date: Optional new update_date value (format: YYYY-MM-DD)
dependencies: Optional new dependencies list
feature_id: Feature identifier (for RBT documents)
doc_type: Document type - REQ/BP/TASK (for RBT documents)
file_path: File path relative to docs/ (for general documents)
Returns:
Success message
Example:
# Update status only
update_info(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="TASK",
file_path="017",
status="Done"
)
# Update multiple fields
update_info(
project_id="knowledge-smith",
feature_id="rbt-mcp-tool",
doc_type="BP",
status="In Progress",
update_date="2025-10-08",
dependencies=["TASK-001", "TASK-002"]
)
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-016-UpdateInfoTool |
clear_cache | Clear document cache.
Args:
file_path: Optional file path to clear; if None, clears all cache
Returns:
Success message
Example:
# Clear specific file
clear_cache(file_path="/path/to/document.md")
# Clear all cache
clear_cache()
@REQ: REQ-rbt-mcp-tool
@BP: BP-rbt-mcp-tool
@TASK: TASK-015-ClearCacheTool-Server-Setup |