ragic-mcp
This MCP server lets you interact with Ragic (a cloud database/form platform) through an AI assistant or CLI, covering 11 tools for sheet exploration, full CRUD operations, search, approval workflows, and record locking.
Discover sheets (
ragic_list_sheets): List all sheets accessible by the configured API key, grouped by tab — useful for finding a sheet by name without knowing its URL.List records (
ragic_list_records): Retrieve records from a sheet with support for filtering, sorting, pagination, subtables, approval status, and history.Get a single record (
ragic_get_record): Fetch one specific record by its ID, including optional subtable data, approval info, and edit history.Full-text search (
ragic_search): Search all text across a sheet using a keyword query.Create records (
ragic_create_record): Add new records to a sheet, including subtable rows, with control over formulas, workflows, notifications, and validation.Update records (
ragic_update_record): Partially update specific fields of an existing record, with lock-checking enabled by default.Delete records (
ragic_delete_record): Remove a single record from a sheet.Approve or reject records (
ragic_approve): Trigger the Ragic approval workflow to approve or reject a record, with an optional comment.Lock records (
ragic_lock): Lock a record to prevent further edits.Unlock records (
ragic_unlock): Remove the lock from a previously locked record.Filter/parameter help (
ragic_filter_help): Retrieve a cheatsheet covering filter syntax, system field IDs, subtable write formats, and rate limit information.
All operations respect Ragic's API key permissions — read-only keys block write tools, while write-capable keys enable full functionality.
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., "@ragic-mcpList all sheets I can read"
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.
ragic-mcp
讓 AI(Claude Desktop、Claude Code、其他 MCP client)直接操作 Ragic 的 MCP server。11 個 tool 涵蓋表單探索、讀取、寫入、簽核、上鎖。
權限完全由 Ragic 那邊的 API key 控制——key 是 read-only,寫入類 tool 就會收到 Ragic 的權限錯誤;key 有寫入權限就全用得到。
AI 怎麼用這個 server 看 AGENTS.md。這份檔案只講「給人類的安裝與設定」。
一、需要的東西
Ragic 帳號與有效 API key(Ragic 後台 → 個人設定 → 帳號設定 → API key)
Python 3.10+
uv(推薦):
brew install uv或pip install uv
Related MCP server: Airtable MCP Server
二、安裝
懶人路線:把這個 repo 網址
https://github.com/EthanH9977/ragic-mcp貼給你的 AI,說「幫我裝這個 MCP」。AI 會照 AGENTS.md §0 的 6 步流程自動跑完安裝+設定+註冊到 MCP client。下面是手動流程:
uv tool install git+https://github.com/EthanH9977/ragic-mcp.git裝完 ragic-mcp 命令會自動在 PATH 裡,任何 terminal 直接跑。確認:
which ragic-mcp
# 應該回:/Users/<你>/.local/bin/ragic-mcp沒裝 uv?
brew install uv(macOS)或看 uv 官網。本 server 依賴 mcp 1.x(
mcp.server.fastmcp)。mcp 2.0 已移除該模組,新裝會在 import 時崩潰。已驗證的 interpreter 是 Python 3.12。若已裝到壞掉的版本,重裝:uv tool install --force --python 3.12 git+https://github.com/EthanH9977/ragic-mcp.git
三、設定 credentials(一次就好)
在 terminal 跑:
ragic-mcp setup這會:
在
~/.config/ragic-mcp/config.json建立一份模板(檔案權限自動 0600,只有你本人能讀)用你系統預設的文字編輯器(macOS = TextEdit、Windows = Notepad、Linux =
$EDITOR)打開你直接在編輯器裡填三個值,存檔關閉
模板長這樣,把右邊三個值換成你的:
{
"RAGIC_SERVER": "ap5.ragic.com",
"RAGIC_ACCOUNT": "your_account_here",
"RAGIC_API_KEY": "paste_your_api_key_here"
}欄位 | 取自你 Ragic 表單網址 |
RAGIC_SERVER |
|
RAGIC_ACCOUNT | 網域後第一段 |
RAGIC_API_KEY | Ragic 後台 → 個人設定 → 帳號設定 → API key |
其他相關指令
ragic-mcp show # 顯示目前設定(API key 自動 mask 成首尾 4 碼)
ragic-mcp clear # 刪除本機 config
ragic-mcp serve # 啟動 MCP server(預設行為,給 client 呼叫)如果你不想存到檔案,也可以用環境變數覆蓋(env var 優先序高於 config 檔):
RAGIC_SERVER=... RAGIC_ACCOUNT=... RAGIC_API_KEY=... ragic-mcp四、接到 MCP client
Claude Desktop
打開 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows),加入:
{
"mcpServers": {
"ragic": {
"command": "ragic-mcp"
}
}
}注意:
command要寫成ragic-mcp可被 PATH 找到。如果你是裝在 venv,要寫絕對路徑,例如:/path/to/your/venv/bin/ragic-mcp
存檔後重啟 Claude Desktop。
Claude Code
claude mcp add --scope user ragic ragic-mcp(如果 ragic-mcp 不在 PATH,改成絕對路徑。)
其他 MCP client
任何支援 stdio transport 的 client 都行。指令一律是:
ragic-mcp五、驗證
在 MCP client 對話視窗問:
呼叫 ragic_filter_help 看 cheatsheet
收到一份 Ragic API filter cheatsheet 就表示通了。
接著測讀取——直接讓 AI 自己探索你的表:
用 ragic_list_sheets 列出我所有可以讀的表
AI 拿到表清單後就能直接幫你查特定表,不用再貼網址。
六、提供的 tool(11 個)
Tool | 動作 | API key 需要的權限 |
| 列出帳號下所有可讀的表(含中文名、path、sheet_index) | read |
| 列表+過濾+排序+分頁 | read |
| 讀單筆 | read |
| 全文檢索 | read |
| 新增(含子表) | write |
| 局部更新欄位 | write |
| 刪除單筆 | write |
| 簽核(approve/reject) | approval |
| 上鎖 | write |
| 解鎖 | write |
| 取 filter/參數速查表 | — |
每個 tool 的詳細參數、where 過濾語法、子表格寫入格式寫在 AGENTS.md。
七、安全設計
防線 | 怎麼擋 |
API key 不入 git |
|
API key 不外流 | 設定檔權限 |
API key 不入 shell history |
|
主機白名單 | client 拒絕非 |
不跟 redirect |
|
寫入錯誤偵測 | Ragic 寫入失敗會回 HTTP 200 + |
依然要遵守的最佳實務:
API key 給最小權限(read-only 就好的場景不要發 write key)
不要把
~/.config/ragic-mcp/config.json拷貝到雲端硬碟或截圖外傳懷疑外流時:Ragic 後台 revoke → 重新跑
ragic-mcp setup
八、Ragic 限速
同時待處理佇列 50 個
持續超過 5 req/sec 會被人工審查
九、回報問題
十一、CLI 直接操作資料
除了 MCP server 模式,ragic-mcp 也提供 11 個子指令讓你在 terminal 直接讀寫 Ragic,無需 MCP client。
安裝
uv tool install --editable /path/to/ragic-mcp # 本機開發版
# 或從 GitHub 安裝正式版:
uv tool install git+https://github.com/EthanH9977/ragic-mcp.git設定 credentials 同 MCP 模式(ragic-mcp setup),CLI 讀同一份 ~/.config/ragic-mcp/config.json。
全域選項:--config <路徑> 可覆寫設定檔路徑。
子指令速查
子指令 | 說明 | 防呆 |
| 列出所有可讀的表 | — |
| 列表(支援 | — |
| 讀單筆 | — |
| 全文搜尋 | — |
| 顯示 filter/參數速查表 | — |
| 新增記錄 | — |
| 更新欄位 | — |
| 刪除記錄 | 需 |
| 簽核( | 需 |
| 上鎖 | — |
| 解鎖 | — |
結果輸出為 JSON(stdout);錯誤輸出到 stderr 且 exit code 非 0;delete-record/approve 無 --yes 時 exit 2 且不呼叫 API。
範例:
# 列出所有表
ragic-mcp list-sheets
# 列出前 3 筆(FNAME 欄位名稱)
ragic-mcp list-records sales 1 --limit 3
# 讀單筆
ragic-mcp get-record sales 1 12345
# 全文搜尋
ragic-mcp search sales 1 "Acme Corp"
# 查 filter 語法
ragic-mcp filter-help
# 刪除(需 --yes)
ragic-mcp delete-record sales 1 12345 --yes與 MCP 併存
CLI 與 MCP server 完全複用同一份 client 與 config,無需額外設定。若你的 AI assistant 已透過 MCP 連接 Ragic,CLI 仍可在 terminal 獨立使用,兩者不衝突。
十二、授權
MIT
Available Tools
11 toolsragic_approveB
Approve or reject a record awaiting approval.
action must be "approve" or "reject". comment is optional response text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| action | No | approve | |
| comment | No | ||
| record_id | Yes | ||
| sheet_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It reveals that the tool modifies approval status but omits side effects, required permissions, reversibility, or potential notifications. Minimal disclosure beyond the basic action.
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 very short and to the point, with no extraneous words. It could be more structured, but it effectively conveys core information in two sentences.
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 tool with five parameters, no annotations, and no output schema, the description leaves significant gaps: three required parameters are unexplained, and there is no mention of the tool's role in the approval workflow or any prerequisites. The agent lacks essential context to use it correctly.
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 for two parameters: specifying valid values for 'action' and clarifying 'comment' as optional response text. However, three required parameters (path, record_id, sheet_index) remain undescribed. Given 0% schema coverage, the description partially compensates but is incomplete.
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's action: 'Approve or reject a record awaiting approval.' This distinguishes it from sibling tools like ragic_update_record or ragic_lock, which serve different purposes.
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 parameter constraints (action must be 'approve' or 'reject', comment is optional) but offers no guidance on when to use this tool versus alternatives like ragic_update_record. No context about prerequisites or expected record states is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_create_recordB
Create a new record. fields keys are numeric field IDs as strings.
For subtables include _subtable_<fieldId> with negative-keyed rows.
See ragic_filter_help() for the subtable format and write parameters.
Requires an API key with write permission; otherwise Ragic returns 401.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| fields | Yes | ||
| check_lock | No | ||
| do_formula | No | ||
| do_workflow | No | ||
| sheet_index | Yes | ||
| do_link_load | No | ||
| notification | No | ||
| do_validation | No | ||
| do_default_value | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the auth requirement (write permission) and field format but does not disclose return value, error handling, or whether the operation is idempotent.
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?
Description is relatively concise with 3 sentences, front-loading the purpose. It uses line breaks for readability, but could be more structured with parameter details.
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 10 parameters, no output schema, and no annotations, the description is incomplete. It covers field format but omits many parameter semantics and behavioral details needed for correct invocation.
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% for 10 parameters. Only the 'fields' parameter is partially described (numeric keys, subtables). Other parameters like path, check_lock, do_formula, etc., are not explained in the 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?
Description clearly states 'Create a new record' with specific verb and resource. It adds context about field format (numeric IDs) and subtables, which distinguishes it from other operations like update or 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?
Description mentions required write permission and references ragic_filter_help() for subtables. However, it does not explicitly state when to use this tool over alternatives like ragic_update_record, or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_delete_recordB
Delete a record. Ragic does not support batch delete via this endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| record_id | Yes | ||
| sheet_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should disclose behavioral traits. It identifies the action as destructive but does not mention authentication needs, reversibility, error behavior, or success/failure responses. The no-batch note is helpful but insufficient.
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 very concise with two sentences, front-loading the primary action. However, it may be too brief given the lack of parameter explanations and usage context.
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 delete operation with three required parameters and no output schema or annotations, the description is incomplete. It fails to clarify parameter roles, return values, or error conditions, leaving significant gaps for an 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 offers no explanation for the three required parameters (path, record_id, sheet_index). Since schema description coverage is 0%, the description should compensate, but it adds no meaning beyond the parameter names.
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 'Delete a record' with a specific verb and resource, and distinguishes from siblings like ragic_create_record and ragic_update_record. The additional note about batch delete adds clarity.
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 that batch delete is not supported, implying when not to use this tool. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide contexts such as prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_filter_helpA
Return the Ragic filter / write-parameter cheatsheet.
Read this once at the start of a Ragic task to understand the where
syntax, system field IDs, subtable write format, and rate limits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses that it returns a cheatsheet, is read-only, and intended for initial setup. No hidden behaviors.
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 succinct sentences with front-loaded purpose. No 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?
Given it's a help tool with no inputs, description covers what it returns (syntax, IDs, format, limits). Output schema exists but not detailed; description compensates with specific topics.
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?
No parameters exist, so the description adds value by explaining what the tool returns (syntax cheatsheet with specific topics). Schema coverage is 100%.
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 a cheatsheet for Ragic filter/write parameters. It is distinct from sibling tools which perform specific CRUD operations.
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 advises reading at the start of a Ragic task to understand syntax, field IDs, and rate limits. Does not mention alternatives, but context makes it clear this is a documentation tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_get_recordB
Read one record by its Ragic node id (_ragicId in list responses).
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | ||
| path | Yes | ||
| naming | No | FNAME | |
| history | No | ||
| approval | No | ||
| record_id | Yes | ||
| subtables | No | ||
| ignore_mask | No | ||
| sheet_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is read-only ('Read one record') and specifies the input key (`_ragicId`). However, with no annotations provided, the description carries the full burden. It fails to mention behavioral traits like what happens if the record is not found, required permissions, rate limits, or the structure of the response. The detail about the ID source adds some transparency, but overall it is minimal.
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 that efficiently conveys the core action and key input. It is front-loaded with the verb and resource, containing 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?
Given the tool's 9 parameters, no output schema, and no annotations, the description is grossly incomplete. It does not explain the return format, error behavior, the meaning of optional parameters, or how the tool fits into a workflow (e.g., 'Use after getting `_ragicId` from `ragic_list_records`'). This leaves an AI agent with significant gaps for correct invocation.
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 has 9 parameters with 0% schema description coverage. The description only mentions `record_id` implicitly via `_ragicId`. It does not explain the purpose of `path`, `sheet_index`, or the boolean flags (`info`, `naming`, `history`, `approval`, `subtables`, `ignore_mask`). For a tool with many optional parameters, this is severely lacking and provides almost no value beyond the schema's property titles.
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 ('Read one record') and the resource ('by its Ragic node id'). It specifies the identifier field (`_ragicId` in list responses), which distinguishes it from sibling tools like `ragic_list_records` (multiple records) and `ragic_create_record` (write operation).
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?
There is no explicit guidance on when to use this tool versus alternatives (e.g., `ragic_search` or `ragic_list_records` with filters). The description implies you need the record ID from a list response, but does not state prerequisites, when to avoid, or context like 'Use this for fetching a single known record; for bulk retrieval, use `ragic_list_records`.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_list_recordsA
Read records from a Ragic sheet.
path and sheet_index come from the sheet URL
https://{server}/{account}// — e.g. for
https://www.ragic.com/demo/sales/1 use path="sales", sheet_index="1".
where is a list of filter conditions. Each is an object:
{"field_id": "", "op": "", "value": ""}
Operators: eq, like, regex, gte, lte, gt, lt, eqeq.
Same field with multiple eq/like/regex = OR; gte+lte on same field = AND
range; conditions on different fields = AND. Set value to "" to match
empty cells. Dates use yyyy/MM/dd.
Call ragic_filter_help() for the full cheatsheet including system field IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | ||
| path | Yes | ||
| limit | No | ||
| order | No | ||
| where | No | ||
| naming | No | FNAME | |
| offset | No | ||
| history | No | ||
| listing | No | ||
| approval | No | ||
| subtables | No | ||
| ignore_mask | No | ||
| sheet_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explicitly states 'Read records' indicating non-destructive behavior. While it does not explicitly guarantee safety, the verb 'read' adequately conveys the operation type. No contradiction detected.
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?
Description is a single paragraph with helpful line breaks, no wasted words. Purpose is front-loaded. Includes a reference to a cheatsheet for additional details, which is efficient. Could be more structured but is appropriately sized.
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 13 parameters and no output schema, description is insufficient. It omits explanation for many parameters (e.g., limit, offset, info). Agent lacks full understanding of all options, risking incorrect tool 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 description coverage is 0%, requiring description to compensate. Description covers only 3 of 13 parameters (path, sheet_index, where) in detail, leaving limit, offset, order, info, naming, etc. unexplained. Parameter semantics are incomplete for an AI agent.
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 starts with 'Read records from a Ragic sheet' clearly stating verb (read) and resource (records from a sheet). It distinguishes from sibling tools like ragic_create_record (create) and ragic_delete_record (delete) by specifying read-only operation.
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?
Description explains how to construct path and sheet_index from URL and details where parameter usage, but does not explicitly state when to use this tool versus alternatives like ragic_get_record or ragic_search. Usage context is implied but not comparative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_list_sheetsA
List every sheet the configured API key can see, grouped by tab.
Returns a tree: account -> tabs (path like "/sales") -> sheets (key = sheet_index, value = {name, type, seq}). Use this as the FIRST call when the user asks about a sheet by Chinese name — find it in the tree, then use the matching path & sheet_index for subsequent tools.
No arguments. The user doesn't need to paste a URL anymore.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It clearly describes the output and that no arguments are needed. It implies a read-only operation (listing) but does not explicitly state no side effects. The description is adequate but could be more explicit about being safe/idempotent.
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: three sentences, each purposeful. First sentence states the main action, second details output format, third gives usage instructions. No redundancy or extra 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?
Given zero parameters, no annotations, and no output schema, the description is complete. It explains what the tool does, the output structure, and how to use it in a workflow. No gaps remain.
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, so schema coverage is trivially 100%. With 0 parameters, baseline is 4. The description correctly notes 'No arguments,' so no additional parameter info is needed.
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's purpose: 'List every sheet the configured API key can see, grouped by tab.' It specifies the output structure (tree: account -> tabs -> sheets) and differentiates from siblings by indicating it's the first call to find a sheet by Chinese name.
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 'Use this as the FIRST call when the user asks about a sheet by Chinese name — find it in the tree, then use the matching path & sheet_index for subsequent tools.' This provides clear when-to-use and what-to-do-next guidance. Also states 'No arguments. The user doesn't need to paste a URL anymore.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_lockC
Lock a record to prevent further edits.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| record_id | Yes | ||
| sheet_index | Yes |
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 only states the immediate effect ('prevent further edits') but does not disclose side effects, permissions needed, or behavior if the record is already locked.
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?
One short sentence is concise, but it omits critical information that should be present. It is not well-structured for completeness.
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 three parameters and no annotations or output schema, the description is incomplete. It lacks details on parameter formats, prerequisites, and behavioral context.
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% and the description adds no information about the three required parameters ('path', 'record_id', 'sheet_index'). The agent has no guidance on what values to pass.
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 ('Lock'), the resource ('a record'), and the effect ('prevent further edits'). It distinguishes itself from the sibling tool 'ragic_unlock' by implication.
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 or when not to use this tool versus alternatives like 'ragic_unlock' or 'ragic_approve'. Usage 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.
ragic_searchC
Full-text search a sheet (Ragic fts parameter).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| query | Yes | ||
| naming | No | FNAME | |
| offset | No | ||
| sheet_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present. The description only mentions the 'fts' parameter, giving minimal insight into behavioral traits like side effects, authorization needs, or performance implications. For a search tool, it is insufficient.
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 very concise, consisting of a single sentence. It is efficient with no wasted words, but could benefit from additional context without sacrificing brevity.
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 has 6 parameters, no output schema, and no annotations, the description is incomplete. It does not explain pagination (limit/offset), response format, or how the 'fts' parameter interacts with the query.
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 no explanation for the six parameters beyond the hint about the 'fts' parameter. With 0% schema description coverage, the description fails to clarify the meaning or usage of parameters like 'path', 'sheet_index', 'limit', 'offset', or 'naming'.
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 performs full-text search on a sheet, referencing the Ragic 'fts' parameter. However, it does not differentiate from sibling tools like 'ragic_list_records' or 'ragic_get_record'.
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. The description lacks context for when full-text search is appropriate compared to list or filter operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_unlockC
Unlock a previously locked record.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| record_id | Yes | ||
| sheet_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It only states 'unlock' without mentioning permissions, effects of unlocking a non-locked record, or state changes. This is insufficient for a mutation 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?
The description is a single sentence with no fluff, but it is overly concise and omits critical details, making it less effective than a slightly longer description would be.
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 three required parameters, no output schema, and no annotations, the description is highly incomplete. It fails to explain the record identity, unlocking prerequisites, or return behavior.
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 0% schema description coverage, the description must explain parameters. It does not define path, sheet_index, or record_id, leaving the agent without essential context.
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 (unlock) and resource (record), and it differentiates from sibling tools such as ragic_lock and ragic_approve by specifying a distinct operation.
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 (e.g., only for locked records) or its relationship to ragic_lock. The agent has no context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ragic_update_recordB
Update fields of an existing record. Only the provided fields change.
check_lock defaults to true so a locked record will not be overwritten
silently. Set to false to bypass (use with care).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| fields | Yes | ||
| record_id | Yes | ||
| check_lock | No | ||
| do_formula | No | ||
| do_workflow | No | ||
| sheet_index | Yes | ||
| do_link_load | No | ||
| notification | No | ||
| do_validation | No | ||
| do_default_value | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds behavioral detail on check_lock preventing silent overwrite, but omits other traits like authentication needs, rate limits, or effects of extra booleans (do_formula, do_workflow, etc.).
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: the first states purpose, the second adds critical lock behavior. No unnecessary words, front-loaded essential info.
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 11 parameters and no output schema or annotations, the description leaves most parameters undefined (e.g., path, sheet_index, do_workflow). Only check_lock is covered, so the agent lacks sufficient context to use the tool correctly.
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 check_lock is explained in the description; the remaining 10 parameters (including required fields, fields object, do_formula, etc.) receive no semantics beyond the schema names, which have 0% 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?
Clearly states 'Update fields of an existing record' with the specific caveat 'Only the provided fields change,' distinguishing it from creation or deletion siblings.
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 on when to use this tool versus alternatives like ragic_create_record or ragic_lock; the description only explains check_lock behavior without usage context.
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.
11 tool updates
v0.1.0- First observed
ragic_approve - First observed
ragic_create_record - First observed
ragic_delete_record - First observed
ragic_filter_help - First observed
ragic_get_record - First observed
ragic_list_records - First observed
ragic_list_sheets - First observed
ragic_lock - First observed
ragic_search - First observed
ragic_unlock - First observed
ragic_update_record
TDQS
Scored across 11 tools
Each tool targets a distinct operation (CRUD, search, list sheets, lock/unlock, approve, filter help) with no overlap. An agent can easily distinguish them.
All tool names follow a consistent `ragic_verb_noun` pattern (e.g., ragic_create_record, ragic_list_sheets). No mixing of conventions.
With 11 tools, the set is well-scoped for a database client, covering essential operations without superfluous tools.
The tools provide full CRUD, search, sheet discovery, locking, and approval—covering the core Ragic workflow. No obvious gaps for the intended purpose.
Maintenance
Related MCP Connectors
Let AI agents query data and act across all your business apps via MCP.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
AI agent registry — search, discover, register, and connect agents via MCP.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI agents to interact with Microsoft SQL Server databases via MCP, supporting table listing, schema retrieval, and CRUD operations.31MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI-powered interaction with Airtable bases, supporting CRUD operations, schema management, webhooks, and natural language queries through the MCP protocol.291 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to read and modify Mendix application models through MCP tools for creating modules, entities, pages, microflows, deploying, and querying runtime data.1-
- FlicenseAqualityCmaintenanceEnables generic CRUD operations on ERPNext/Frappe DocTypes via MCP tools, allowing users to interact with ERPNext data like documents, reports, and schema through natural language commands.8-