Smartsheet MCP Server
提供与 Smartsheet 的无缝集成,通过标准化接口实现 Smartsheet 文档的自动化操作,从而将人工智能驱动的自动化工具与 Smartsheet 的协作平台连接起来。
Tools
smartsheet_add_column
Add a new column to a Smartsheet
smartsheet_delete_column
Delete a column from a Smartsheet
smartsheet_rename_column
Rename a column in a Smartsheet
get_column_map
Get column mapping and sample data from a Smartsheet
smartsheet_write
Write data to a Smartsheet
smartsheet_update
Update existing rows in a Smartsheet
smartsheet_delete
Delete rows from a Smartsheet
smartsheet_search
Search for content in a Smartsheet
start_batch_analysis
Start a batch analysis job using Azure OpenAI
cancel_batch_analysis
Cancel a running batch analysis job
get_job_status
Get the status of a batch analysis job
smartsheet_bulk_update
Perform conditional bulk updates on a Smartsheet
README
Smartsheet MCP 服务器
一个模型上下文协议 (MCP) 服务器,提供与 Smartsheet 的无缝集成,通过标准化的接口实现 Smartsheet 文档的自动化操作。此服务器弥合了 AI 驱动的自动化工具与 Smartsheet 强大的协作平台之间的差距。
概述
Smartsheet MCP 服务器旨在促进与 Smartsheet 的智能交互,提供一套强大的工具用于文档管理、数据操作和列自定义。它是自动化工作流程中的一个关键组件,使 AI 系统能够以编程方式与 Smartsheet 数据进行交互,同时保持数据完整性并执行业务规则。
主要优势
- 智能集成:将 AI 系统与 Smartsheet 的协作平台无缝连接
- 数据完整性:强制执行验证规则并维护跨操作的引用完整性
- 公式管理:自动保留和更新公式引用
- 灵活配置:支持各种列类型和复杂的数据结构
- 错误恢复能力:在多个层面上实现全面的错误处理和验证
- 医疗保健分析:针对临床和研究数据的专业分析能力
- 批量处理:高效处理大型医疗保健数据集
- 自定义评分:用于医疗保健计划和研究的灵活评分系统
使用案例
-
临床研究分析
- 协议合规性评分
- 患者数据分析
- 研究影响评估
- 临床试验数据处理
- 自动化研究笔记摘要
-
医院运营
- 资源利用率分析
- 患者满意度评分
- 部门效率指标
- 员工绩效分析
- 质量指标跟踪
-
医疗保健创新
- 儿科对齐评分
- 创新影响评估
- 研究优先级排序
- 实施可行性分析
- 临床价值评估
-
自动化文档管理
- 以编程方式修改工作表结构
- 动态列创建和管理
- 自动化数据验证和格式化
-
数据操作
- 具有完整性检查的批量数据更新
- 智能重复检测
- 具有公式感知的修改
-
系统集成
- AI 驱动的工作表自定义
- 自动化报告工作流程
- 跨系统数据同步
集成点
该服务器与以下各项集成:
- 用于数据操作的 Smartsheet API
- 用于标准化通信的 MCP 协议
- 通过 stdio 接口的本地开发工具
- 通过结构化日志记录的监控系统
架构
该服务器实现了 MCP 和 Smartsheet 之间的桥接架构:
graph LR
subgraph MCP[MCP Layer]
direction TB
A[Client Request] --> B[TypeScript MCP Server]
B --> C[Tool Registry]
B --> D[Config Management]
end
subgraph CLI[CLI Layer]
direction TB
E[Python CLI] --> F[Argument Parser]
F --> G[Command Router]
G --> H[JSON Formatter]
end
subgraph Core[Core Operations]
direction TB
I[Smartsheet API Client] --> J[Column Manager]
J --> K[Data Validator]
J --> L[Formula Parser]
end
MCP --> CLI --> Core
style A fill:#f9f,stroke:#333
style I fill:#bbf,stroke:#333
-
TypeScript MCP 层 (
src/index.ts)- 处理 MCP 协议通信
- 注册和管理可用工具
- 将请求路由到 Python 实现
- 管理配置和错误处理
-
Python CLI 层 (
smartsheet_ops/cli.py)- 提供用于操作的命令行界面
- 处理参数解析和验证
- 实现重复检测
- 管理 JSON 数据格式化
-
核心操作层 (
smartsheet_ops/__init__.py)- 实现 Smartsheet API 交互
- 处理复杂的列类型管理
- 提供数据规范化和验证
- 管理系统列和公式解析
列管理流程
sequenceDiagram
participant C as Client
participant M as MCP Server
participant P as Python CLI
participant S as Smartsheet API
C->>M: Column Operation Request
M->>P: Parse & Validate Request
alt Add Column
P->>S: Validate Column Limit
S-->>P: Sheet Info
P->>S: Create Column
S-->>P: Column Created
P->>S: Get Column Details
S-->>P: Column Info
else Delete Column
P->>S: Check Dependencies
S-->>P: Formula References
alt Has Dependencies
P-->>M: Dependency Error
M-->>C: Cannot Delete
else No Dependencies
P->>S: Delete Column
S-->>P: Success
end
else Rename Column
P->>S: Check Name Uniqueness
S-->>P: Validation Result
P->>S: Update Column Name
S-->>P: Name Updated
P->>S: Update Formula References
S-->>P: References Updated
end
P-->>M: Operation Result
M-->>C: Formatted Response
错误处理流程
flowchart TD
A[Client Request] --> B{MCP Layer}
B -->|Validation Error| C[Return Error Response]
B -->|Valid Request| D{CLI Layer}
D -->|Parse Error| E[Format JSON Error]
D -->|Valid Command| F{Core Operations}
F -->|API Error| G[Handle API Exception]
F -->|Validation Error| H[Check Error Type]
F -->|Success| I[Format Success Response]
H -->|Dependencies| J[Return Dependency Info]
H -->|Limits| K[Return Limit Error]
H -->|Data| L[Return Validation Details]
G --> M[Format Error Response]
J --> N[Send to Client]
K --> N
L --> N
I --> N
style A fill:#f9f,stroke:#333
style N fill:#bbf,stroke:#333
功能
工具
-
get_column_map(读取)- 从 Smartsheet 检索列映射和示例数据
- 提供详细的列元数据,包括:
- 列类型(系统列、公式、选择列表)
- 验证规则
- 格式规范
- 自动编号配置
- 返回示例数据以供参考
- 包括用于写入数据的使用示例
-
smartsheet_write(创建)- 将新行写入 Smartsheet,并智能处理以下各项:
- 系统管理的列
- 多选选择列表值
- 基于公式的列
- 实现自动重复检测
- 返回详细的操作结果,包括行 ID
- 将新行写入 Smartsheet,并智能处理以下各项:
-
smartsheet_update(更新)- 更新 Smartsheet 中的现有行
- 支持部分更新(修改特定字段)
- 通过验证维护数据完整性
- 以一致的方式处理多选字段
- 返回每行的成功/失败详细信息
-
smartsheet_delete(删除)- 从 Smartsheet 中删除行
- 支持批量删除多行
- 验证行是否存在以及权限
- 返回详细的操作结果
-
smartsheet_add_column(列管理)- 向 Smartsheet 添加新列
- 支持所有列类型:
- TEXT_NUMBER
- DATE
- CHECKBOX
- PICKLIST
- CONTACT_LIST
- 可配置的选项:
- 位置索引
- 验证规则
- 公式定义
- 选择列表选项
- 强制执行列限制 (400) 并进行验证
- 返回详细的列信息
-
smartsheet_delete_column(列管理)- 安全地删除具有依赖项检查的列
- 在删除之前验证公式引用
- 防止删除公式中使用的列
- 返回详细的依赖项信息
- 支持强制删除选项
-
smartsheet_rename_column(列管理)- 重命名列,同时保留关系
- 自动更新公式引用
- 维护数据完整性
- 验证名称唯一性
- 返回详细的更新信息
-
smartsheet_bulk_update(条件更新)- 根据规则执行条件批量更新
- 支持复杂的条件评估:
- 多个运算符(等于、包含、大于等)
- 特定于类型的比较(文本、日期、数字)
- 空/非空检查
- 具有可配置大小的批量处理
- 全面的错误处理和回滚
- 详细的操作结果跟踪
-
start_batch_analysis(医疗保健分析)- 使用 AI 分析处理整个工作表或选定的行
- 支持多种分析类型:
- 临床笔记摘要
- 患者反馈的情感分析
- 医疗保健计划的自定义评分
- 研究影响评估
- 特点:
- 自动批量处理(每批 50 行)
- 进度跟踪和状态监控
- 具有详细报告的错误处理
- 可自定义的分析目标
- 支持多个源列
-
get_job_status(分析监控)- 跟踪批量分析进度
- 提供详细的作业统计信息:
- 要处理的总行数
- 已处理的行数
- 失败的行数
- 处理时间戳
- 实时状态更新
- 全面的错误报告
-
cancel_batch_analysis(作业控制)- 取消正在运行的批量分析作业
- 正常进程终止
- 维护数据一致性
- 返回最终作业状态
主要功能
-
列类型管理
- 处理系统列类型(AUTO_NUMBER、CREATED_DATE 等)
- 支持公式解析和依赖项跟踪
- 管理选择列表选项和多选值
- 全面的列操作(添加、删除、重命名)
- 公式引用保留和更新
-
数据验证
- 自动重复检测
- 列类型验证
- 数据格式验证
- 列依赖项分析
- 名称唯一性验证
-
元数据处理
- 提取和处理列元数据
- 处理验证规则
- 管理格式规范
- 跟踪公式依赖项
- 维护列关系
-
医疗保健分析
- 临床笔记摘要
- 患者反馈情感分析
- 协议合规性评分
- 研究影响评估
- 资源利用率分析
-
批量处理
- 自动行批处理(每批 50 行)
- 进度跟踪和监控
- 错误处理和恢复
- 可自定义的处理目标
- 多列分析支持
-
作业管理
- 实时状态监控
- 详细的进度跟踪
- 错误报告和日志记录
- 作业取消支持
- 批量操作控制
设置
前提条件
- Node.js 和 npm
- Conda(用于环境管理)
- Smartsheet API 访问令牌
环境设置
- 创建一个专用的 conda 环境:
conda create -n cline_mcp_env python=3.12 nodejs -y
conda activate cline_mcp_env
- 安装 Node.js 依赖项:
npm install
- 安装 Python 包:
cd smartsheet_ops
pip install -e .
cd ..
- 构建 TypeScript 服务器:
npm run build
配置
服务器需要在您的 MCP 设置中进行正确的配置。您可以将其与 Claude Desktop 和 Cline 一起使用。
1. 获取您的 Smartsheet API 密钥
- 登录到 Smartsheet
- 转到帐户 → 个人设置 → API 访问
- 生成新的访问令牌
2. 为 Cline 配置
配置路径取决于您的操作系统:
macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{
"mcpServers": {
"smartsheet": {
"command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node",
"args": ["/path/to/smartsheet-server/build/index.js"],
"env": {
"PYTHON_PATH": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3",
"SMARTSHEET_API_KEY": "your-api-key",
"AZURE_OPENAI_API_KEY": "your-azure-openai-key",
"AZURE_OPENAI_API_BASE": "your-azure-openai-endpoint",
"AZURE_OPENAI_API_VERSION": "your-api-version",
"AZURE_OPENAI_DEPLOYMENT": "your-deployment-name"
},
"disabled": false,
"autoApprove": [
"get_column_map",
"smartsheet_write",
"smartsheet_update",
"smartsheet_delete",
"smartsheet_search",
"smartsheet_add_column",
"smartsheet_delete_column",
"smartsheet_rename_column",
"smartsheet_bulk_update",
"start_batch_analysis",
"get_job_status",
"cancel_batch_analysis"
]
}
}
}
3. 为 Claude Desktop 配置(可选)
配置路径取决于您的操作系统:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%\Claude\claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"smartsheet": {
"command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node",
"args": ["/path/to/smartsheet-server/build/index.js"],
"env": {
"PYTHON_PATH": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3",
"SMARTSHEET_API_KEY": "your-api-key",
"AZURE_OPENAI_API_KEY": "your-azure-openai-key",
"AZURE_OPENAI_API_BASE": "your-azure-openai-endpoint",
"AZURE_OPENAI_API_VERSION": "your-api-version",
"AZURE_OPENAI_DEPLOYMENT": "your-deployment-name"
},
"disabled": false,
"autoApprove": [
"get_column_map",
"smartsheet_write",
"smartsheet_update",
"smartsheet_delete",
"smartsheet_search",
"smartsheet_add_column",
"smartsheet_delete_column",
"smartsheet_rename_column",
"smartsheet_bulk_update",
"start_batch_analysis",
"get_job_status",
"cancel_batch_analysis"
]
}
}
}
启动服务器
当 Cline 或 Claude Desktop 需要时,服务器将自动启动。但是,您也可以手动启动它以进行测试。
macOS/Linux:
# 激活环境
conda activate cline_mcp_env
# 启动服务器
PYTHON_PATH=/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3 SMARTSHEET_API_KEY=your-api-key node build/index.js
Windows:
:: 激活环境
conda activate cline_mcp_env
:: 启动服务器
set PYTHON_PATH=C:\Users\[username]\anaconda3\envs\cline_mcp_env\python.exe
set SMARTSHEET_API_KEY=your-api-key
node build\index.js
验证安装
- 启动服务器时,服务器应输出“Smartsheet MCP server running on stdio”
- 使用任何 MCP 工具(例如,get_column_map)测试连接
- 检查 Python 环境是否已安装 smartsheet 包:
conda activate cline_mcp_env pip show smartsheet-python-sdk
使用示例
获取列信息(读取)
// 获取列映射和示例数据
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "get_column_map",
arguments: {
sheet_id: "your-sheet-id",
},
});
写入数据(创建)
// 将新行写入 Smartsheet
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_write",
arguments: {
sheet_id: "your-sheet-id",
column_map: {
"Column 1": "1234567890",
"Column 2": "0987654321",
},
row_data: [
{
"Column 1": "Value 1",
"Column 2": "Value 2",
},
],
},
});
更新数据(更新)
// 更新现有行
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_update",
arguments: {
sheet_id: "your-sheet-id",
column_map: {
Status: "850892021780356",
Notes: "6861293012340612",
},
updates: [
{
row_id: "7670198317295492",
data: {
Status: "In Progress",
Notes: "Updated via MCP server",
},
},
],
},
});
删除数据(删除)
// 从 Smartsheet 中删除行
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_delete",
arguments: {
sheet_id: "your-sheet-id",
row_ids: ["7670198317295492", "7670198317295493"],
},
});
医疗保健分析示例
// 示例 1:儿科创新评分
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "start_batch_analysis",
arguments: {
sheet_id: "your-sheet-id",
type: "custom",
sourceColumns: ["Ideas", "Implementation_Details"],
targetColumn: "Pediatric_Score",
customGoal:
"Score each innovation 1-100 based on pediatric healthcare impact. Consider: 1) Direct benefit to child patients, 2) Integration with pediatric workflows, 3) Implementation feasibility in children's hospital, 4) Safety considerations for pediatric use. Return only a number.",
},
});
// 示例 2:临床笔记摘要
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "start_batch_analysis",
arguments: {
sheet_id: "your-sheet-id",
type: "summarize",
sourceColumns: ["Clinical_Notes"],
targetColumn: "Note_Summary",
},
});
// 示例 3:患者满意度分析
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "start_batch_analysis",
arguments: {
sheet_id: "your-sheet-id",
type: "sentiment",
sourceColumns: ["Patient_Feedback"],
targetColumn: "Satisfaction_Score",
},
});
// 示例 4:协议合规性评分
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "start_batch_analysis",
arguments: {
sheet_id: "your-sheet-id",
type: "custom",
sourceColumns: ["Protocol_Steps", "Documentation", "Outcomes"],
targetColumn: "Compliance_Score",
customGoal:
"Score protocol compliance 1-100. Consider: 1) Adherence to required steps, 2) Documentation completeness, 3) Safety measures followed, 4) Outcome reporting. Return only a number.",
},
});
// 示例 5:研究影响评估
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "start_batch_analysis",
arguments: {
sheet_id: "your-sheet-id",
type: "custom",
sourceColumns: ["Research_Findings", "Clinical_Applications"],
targetColumn: "Impact_Score",
customGoal:
"Score research impact 1-100 based on potential benefit to pediatric healthcare. Consider: 1) Clinical relevance, 2) Implementation potential, 3) Patient outcome improvement, 4) Cost-effectiveness. Return only a number.",
},
});
// 监控分析进度
const status = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "get_job_status",
arguments: {
sheet_id: "your-sheet-id",
jobId: "job-id-from-start-analysis",
},
});
// 如果需要,取消分析
const cancel = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "cancel_batch_analysis",
arguments: {
sheet_id: "your-sheet-id",
jobId: "job-id-to-cancel",
},
});
管理列
// 添加新列
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_add_column",
arguments: {
sheet_id: "your-sheet-id",
title: "New Column",
type: "TEXT_NUMBER",
index: 2, // Optional position
validation: true, // Optional
formula: "=[Column1]+ [Column2]", // Optional
},
});
// 删除列
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_delete_column",
arguments: {
sheet_id: "your-sheet-id",
column_id: "1234567890",
validate_dependencies: true, // Optional, default true
},
});
// 重命名列
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_rename_column",
arguments: {
sheet_id: "your-sheet-id",
column_id: "1234567890",
new_title: "Updated Column Name",
update_references: true, // Optional, default true
},
});
### 条件批量更新
`smartsheet_bulk_update` 工具提供强大的条件更新功能。以下是从简单到复杂的示例:
#### 简单条件示例
```typescript
// 示例 1:基本等于比较
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [{
conditions: [{
columnId: "status-column-id",
operator: "equals",
value: "Pending"
}],
updates: [{
columnId: "status-column-id",
value: "In Progress"
}]
}]
}
});
// 示例 2:包含文本搜索
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [{
conditions: [{
columnId: "description-column-id",
operator: "contains",
value: "urgent"
}],
updates: [{
columnId: "priority-column-id",
value: "High"
}]
}]
}
});
// 示例 3:空值检查
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [{
conditions: [{
columnId: "assignee-column-id",
operator: "isEmpty"
}],
updates: [{
columnId: "status-column-id",
value: "Unassigned"
}]
}]
}
});
特定于类型的比较
// 示例 1:日期比较
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [
{
conditions: [
{
columnId: "due-date-column-id",
operator: "lessThan",
value: "2025-02-01T00:00:00Z", // ISO date format
},
],
updates: [
{
columnId: "status-column-id",
value: "Due Soon",
},
],
},
],
},
});
// 示例 2:数值比较
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [
{
conditions: [
{
columnId: "progress-column-id",
operator: "greaterThan",
value: 80, // Numeric value
},
],
updates: [
{
columnId: "status-column-id",
value: "Nearly Complete",
},
],
},
],
},
});
// 示例 3:选择列表验证
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [
{
conditions: [
{
columnId: "category-column-id",
operator: "equals",
value: "Bug", // Must match picklist option exactly
},
],
updates: [
{
columnId: "priority-column-id",
value: "High",
},
],
},
],
},
});
复杂的多条件示例
// 示例 1:具有不同运算符的多个条件
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [
{
conditions: [
{
columnId: "priority-column-id",
operator: "equals",
value: "High",
},
{
columnId: "due-date-column-id",
operator: "lessThan",
value: "2025-02-01T00:00:00Z",
},
{
columnId: "progress-column-id",
operator: "lessThan",
value: 50,
},
],
updates: [
{
columnId: "status-column-id",
value: "At Risk",
},
{
columnId: "flag-column-id",
value: true,
},
],
},
],
},
});
// 示例 2:具有批量处理的多个规则
const result = await use_mcp_tool({
server_name: "smartsheet",
tool_name: "smartsheet_bulk_update",
arguments: {
sheet_id: "your-sheet-id",
rules: [
{
conditions: [
{
columnId: "status-column-id",
operator: "equals",
value: "Complete",
},
{
columnId: "qa-status-column-id",
operator: "isEmpty",
},
],
updates: [
{
columnId: "qa-status-column-id",
value: "Ready for QA",
},
],
},
{
conditions: [
{
columnId: "status-column-id",
operator: "equals",
value: "In Progress",
},
{
columnId: "progress-column-id",
operator: "equals",
value: 100,
},
],
updates: [
{
columnId: "status-column-id",
value: "Complete",
},
],
},
],
options: {
lenientMode: true, // Continue on errors
batchSize: 100, // Process in smaller batches
},
},
});
批量更新操作提供:
-
运算符支持:
equals:完全值匹配contains:子字符串匹配greaterThan:数值/日期比较lessThan:数值/日期比较isEmpty:空/空检查isNotEmpty:存在值检查
-
特定于类型的功能:
- TEXT_NUMBER:字符串/数值比较
- DATE:ISO 日期解析和比较
- PICKLIST:选项验证
- CHECKBOX:布尔处理
-
处理选项:
batchSize:控制更新批处理大小(默认 500)lenientMode:继续执行错误- 每个请求多个规则
- 每个规则多个更新
-
结果跟踪:
- 尝试的总行数
- 成功/失败计数
- 详细的错误信息
- 每行失败详细信息
## 开发
对于具有自动重建的开发:
```bash
npm run watch
调试
由于 MCP 服务器通过 stdio 进行通信,因此调试可能具有挑战性。服务器实现了全面的错误日志记录,并通过 MCP 协议提供详细的错误消息。
主要调试功能:
- 错误日志记录到 stderr
- MCP 响应中的详细错误消息
- 多个级别的类型验证
- 全面的操作结果报告
- 列操作的依赖项分析
- 公式引用跟踪
错误处理
服务器实现了多层错误处理方法:
-
MCP 层
- 验证工具参数
- 处理协议级别的错误
- 提供格式化的错误响应
- 管理超时和重试
-
CLI 层
- 验证命令参数
- 处理执行错误
- 将错误消息格式化为 JSON
- 验证列操作
-
操作层
- 处理 Smartsheet API 错误
- 验证数据类型和格式
- 提供详细的错误上下文
- 管理列依赖项
- 验证公式引用
- 确保数据完整性
贡献
欢迎贡献!请确保:
- TypeScript/Python 代码遵循现有样式
- 新功能包括适当的错误处理
- 更改保持向后兼容性
- 更新包括适当的文档
- 列操作维护数据完整性
- 正确处理公式引用
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。