mcp片状填料
MCP服务器,用于存储和安全自动填充表格数据。为AI代理提供工具,使其能够读取对象、识别空的自动填充字段、收集值并将其写回,而不会覆盖现有数据。
安装
npm install
npm run build配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OBJECT_KEY_FIELD | 对象的关键字段名称 | name |
谷歌表格:
| 变量 | 描述 | 默认值 |
|---|---|---|
GOOGLE_SHEET_ID | 谷歌表格ID | -- |
SHEET_TAB_DATA | 数据表名称 | data |
SHEET_TAB_FIELDS | 字段架构表名称 | fields |
GOOGLE_SERVICE_ACCOUNT_KEY | 服务帐户JSON(字符串或文件路径) | -- |
Google表格设置
- 创建Google Cloud项目并启用Google Sheets API
- 创建服务帐户并下载JSON密钥
- 使用服务帐户电子邮件共享您的Google表格(具有编辑权限)
- 集
GOOGLE_SERVICE_ACCOUNT_KEY到JSON内容或文件路径
板材结构:
fields图纸:列name,description,auto,instructions,type,exampledatasheet:第一行是标题(字段名),第一列是对象键,每一行都是一个对象
用法
使用克劳德桌面
添加 claude_desktop_config.json:
{
"mcpServers": {
"sheet-filler": {
"command": "node",
"args": ["/path/to/mcp-sheet-filler/dist/index.js"],
"env": {
"GOOGLE_SHEET_ID": "your-google-sheet-id",
"GOOGLE_SERVICE_ACCOUNT_KEY": "/path/to/service-account.json"
}
}
}
}发展
npm run dev # Run with tsx
npm run build # Build TypeScript
npm start # Run built version
npm test # Run tests数据模型
领域
对象字段的架构,存储在 fields 表/表:
| 列 | 类型 | 描述 |
|---|---|---|
name | string | 唯一字段名(必填) |
description | string | 字段描述 |
auto | boolean | 自动填充标志 |
instructions | string | 自动填充说明 |
type | string | 用于验证的数据类型 |
example | string | 示例值 |
对象
存储在中的数据对象 data 桌子/床单。每一行是一个对象,每一列是一个字段。对象由其关键字段标识(OBJECT_KEY_FIELD,默认值: name).
支持的类型
string(默认)numberdate(ISO-8601:YYYY-MM-DD)datetime(ISO-8601)urlemailjsonenum:val1|val2|val3
空值规则
如果一个值满足以下条件,则被视为空: null, undefined、空字符串或仅空白。
价值观,如 0, false, "0" 是 不 空的。
MCP工具
filler_init
通过创建来初始化当前电子表格 data 和 fields 带有标题行的选项卡。如果任一选项卡已存在,则出现错误。无需参数。
{}退货 { success, fieldsTab, dataTab, keyField }.
filler_list_fields
列出所有字段或子集。
{ "names": ["field1", "field2"], "include_instructions": true }filler_add_fields
添加新字段(批处理)。
{
"fields": [
{
"name": "website",
"description": "Company website",
"auto": true,
"type": "url",
"instructions": "Find the official website"
}
]
}退货 { results: { [name]: { created: true } | { error: "..." } } }.
filler_get_objects_by_name
按名称获取对象(批处理)。
{ "names": ["Acme Corp", "Globex"] }退货 { objects: [{ found, object?, missing? } | { found: false, name }] }.
filler_add_objects_by_name
创建新对象(批处理)。
{ "names": ["Acme Corp", "Globex"] }退货 { results: { [name]: { created: true } | { error: "..." } } }.
filler_save_objects_nooverwrite
保存多个对象的字段值,而不覆盖非空字段。
{
"objects": [
{
"name": "Acme Corp",
"values": {
"website": "https://acme.com",
"founded": "1990"
}
}
]
}返回每个对象的每个字段的状态:
saved--价值已保存skipped_already_set--字段已具有值rejected_unknown_field--字段不在架构中rejected_invalid_type--值类型验证失败
filler_get_next_缺少字段_对象
获取缺少自动填充字段的对象(默认限制1)。
{ "limit": 1, "include_field_meta": true, "skip_filled_fields": false }skip_filled_fields--何时true,从中省略已填充的字段值object.values(返回{}),减小宽表的响应大小
退货 { found, objects, count, remain } --使用此功能逐个或分批处理对象。
工作流示例
- 客服电话
filler_list_fields理解模式 - 客服电话
filler_get_next_missing_fields_objects获取缺少字段的对象 - 代理使用字段元数据中的指令收集值
- 客服电话
filler_save_objects_no_overwrite安全保存值
错误代码
| 代码 | 描述 |
|---|---|
backend_not_configured | 未配置存储后端 |
field_already_exists | 具有此名称的字段已存在 |
field_not_found | 未找到字段 |
object_already_exists | 同名对象已存在 |
object_not_found | 未找到对象 |
invalid_argument | 提供的参数无效 |
storage_error | 存储操作失败 |
经过测试
- ChatGPT应用程序(开发人员模式)
- 克劳德连接器(定制连接器)
- 光标
- 反重力
- VSCode
- 克劳德爪
- 电报功能机器人
许可证
ISC
