Skip to main content
Glama
Beltran12138

wecom-docs-mcp-server

by Beltran12138

wecom-docs-mcp-server

⚠️ 2026-08-18 보관됨 — 먼저 읽어주세요

더 이상 유지보수되지 않으며, PyPI에 게시된 적도 없습니다. 아래의 pip install wecom-docs-mcp-server 명령은 작동하지 않으며, 작동한 적도 없습니다 — 실행하려면 소스에서 설치하세요.

보관된 이유

이 서버는 WeCom의 robot-doc MCP 백엔드를 통한 stdio 프록시입니다. Tencent의 투자는 공식 WecomTeam/wecom-cli(Rust; 2026-08-17에 v1.1.0으로 재작성, 14개 서비스 도메인)와 공식 WecomTeam/wecom-unified 에이전트 스킬이라는 다른 표면으로 눈에 띄게 이동했습니다. robot-doc MCP 백엔드는 2026-04-22 이후 공개 업데이트가 없습니다.

공식 CLI가 현재 다루는 범위

2026-08-18에 @wecom/cli v1.1.0으로 검증됨:

이 프로젝트의 핵심 가치

v1.1.0에서의 상태

stdio 전송

폐기됨 — CLI는 그 자체가 로컬 프로세스입니다. 셸을 실행할 수 있는 에이전트라면 MCP 레이어가 전혀 필요 없습니다.

ms-epoch → ISO 8601

폐기됨 — CLI가 2026-08-17 12:17:25를 직접 반환합니다.

중국어 오류 힌트

폐기됨 — CLI가 help_message + help_instruction을 반환하며, 클릭 가능한 권한 복구 링크를 포함합니다.

스키마 패스스루

폐기됨 — 모든 하위 명령이 --schema(필드 설명이 포함된 전체 JSON Schema)와 --doc을 허용합니다.

Smartsheet 셀 언랩

여전히 미해결. v1.1.0은 여전히 values[field] = [{"type":"text","text":...}]을 반환하며, 긴 리치 텍스트 셀은 수십 개의 세그먼트로 분할됩니다.

에이전트에 WeCom 문서 접근 권한을 부여하려고 여기 왔다면

이 프로젝트가 아닌 공식 CLI를 사용하세요:

npm install -g @wecom/cli
npx skills add WecomTeam/wecom-unified -y -g
wecom-cli auth init

복사할 가치가 있는 유일한 부분

wecom_doc_mcp/transforms.py — 셀 언랩 변환입니다. ~120줄, MCP 의존성 없음. 이 서버를 실행하는 대신 CLI 출력에 대한 후처리 필터로 가져다 쓰세요.

보존할 가치가 있는 두 가지 경험적 발견

2026-07에 robot-doc 백엔드에 대해 관찰됨:

  • get_doc_content와 smartsheet_get_*는 독립적인 권한 범위를 사용합니다. 동일한 봇이 smartsheet_get_records(errcode 0)로 스마트시트를 읽을 수 있으면서도 동일한 문서에서 get_doc_content로 851003 no authority를 받을 수 있습니다. 문서 유형별로 읽기를 라우팅하세요. 하나의 작동하는 범위가 다른 범위에 대해 아무것도 증명하지 않습니다.

  • docid를 재구성하는 대신 ?scode=를 포함한 전체 문서 url을 전달하세요. 백엔드가 URL을 해석합니다. 접두사를 수동으로 제거하면 301085 invalid docid가 발생합니다.


MCP Python License: MIT Tests

WeCom 공식 robot-doc MCP 백엔드 위의 사용자 친화적인 stdio MCP 파사드입니다. 25개 백엔드 도구를 모두 그대로 프록시하고, LLM 에이전트가 원시 출력을 사용할 수 있게 만드는 변환 레이어를 추가합니다:

  • 스키마 패스스루 — 도구 목록이 시작 시 백엔드에서 가져와지므로 공식 업데이트를 자동으로 추적합니다. 스키마 유지보수 제로.

  • 셀 언랩 — 스마트시트 values[field] = [{"type":"text","text":...}] 셀이 일반 스칼라로 변환됩니다(_rows 뷰에서).

  • ms → ISO — 13자리 ms-epoch 타임스탬프(create_time, update_time)가 ISO 8601로 변환됩니다.

  • 중국어 오류 힌트 — errcode 851003 등에 _error_summary + _error_hint가 추가되어 에이전트가 코드뿐만 아니라 해결 방법도 알게 됩니다.

백엔드와의 관계: 이 서버는 공식 robot-doc MCP 백엔드(WeCom 관리자 → 智能文档机器人 → API에서 얻는 apikey)를 필요로 합니다. 이 서버는 얇은 프록시 + 사용성 레이어이며, 대체품이 아닙니다.


Related MCP server: google-suite-mcp

존재 이유

공식 robot-doc 백엔드는 HTTP(StreamableHttp) MCP 서버입니다. 두 가지 마찰 지점: (1) 많은 MCP 클라이언트와 개발 워크플로우가 stdio를 선호합니다; (2) 원시 출력이 에이전트에 비우호적입니다 — 중첩된 셀 형식, ms-epoch 문자열, 불투명한 오류 코드. 이 서버는 둘 다를 연결합니다:

공식 robot-doc

이 서버

전송

HTTP (StreamableHttp)

stdio

도구 스키마

원시 25개 도구

동일한 25개, 패스스루

셀 형식

[{"type":"text",...}]

언랩된 스칼라 (_rows)

타임스탬프

ms-epoch 문자열

ISO 8601

오류 코드

851003만

+ 중국어 요약 + 해결 힌트

apikey

필수

필수 (프록시됨)


요구 사항

  • Python 3.9+

  • API 키가 있는 WeCom 智能文档机器人(스마트 문서 봇) — 기업(구성원 10명 이상)은 WeCom 관리자 → 应用管理 → 智能文档机器人 → API에서 사용 가능.


설치

⚠️ PyPI에 게시된 적 없음. pip install wecom-docs-mcp-server는 404를 반환합니다. 소스 설치가 유일한 방법입니다.

클론 + 편집 가능 모드:

git clone https://github.com/Beltran12138/wecom-docs-mcp-server
cd wecom-docs-mcp-server
pip install -e .

구성

변수

필수

설명

WECOM_MCP_APIKEY

예

robot-doc apikey

WECOM_MCP_BASE_URL

아니요

백엔드 URL 재정의(기본값 https://qyapi.weixin.qq.com/mcp/robot-doc)

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "wecom-doc": {
      "command": "wecom-docs-mcp-server",
      "env": { "WECOM_MCP_APIKEY": "your_apikey_here" }
    }
  }
}

도구

25개 백엔드 도구가 모두 그대로 노출됩니다(시작 시 실시간으로 가져옴). 도메인별:

도메인

읽기

쓰기

doc

get_doc_content

create_doc, edit_doc_content, upload_doc_image, upload_doc_file

smartsheet (智能表)

get_sheet, get_fields, get_records

add/update/delete × sheet/fields/records

sheet (电子表格)

get_info

add_sub, delete_sub, update_range_data, append_data

smartpage (智能页面)

get_export_result

create, export_task

권한 모델(2026-07 경험적 관찰): get_doc_content와 smartsheet_get_*는 독립적인 권한 범위를 사용합니다. 봇이 smartsheet_get_records(errcode 0)로 스마트시트를 읽을 수 있으면서도 동일한 문서에서 get_doc_content로 851003 no authority를 받을 수 있습니다. 문서 유형별로 읽기를 라우팅하세요.


변환(부가 가치)

모든 tools/call 응답에 자동 적용:

  1. _rows on smartsheet_get_records — 셀이 스칼라로 언랩되고 최상위 레코드 필드(record_id, create_time, …)가 보존되는 평면화된 뷰입니다. 원본 records 배열은 그대로 유지됩니다.

  2. ms → ISO 모든 성공적인 dict 페이로드에서 — 13자리 ms-epoch 문자열 → ISO 8601. 영숫자 ID(q979lj)는 변경되지 않습니다.

  3. _error_summary + _error_hint 0이 아닌 모든 errcode에서 — 중국어 설명 + 구체적인 해결 방법.


사용법

스마트시트를 처음부터 끝까지 읽기:

User: read https://doc.weixin.qq.com/smartsheet/s3_xxx?scode=yyy

Agent:
1. smartsheet_get_sheet(url=...)          → sheet_id (e.g. "q979lj")
2. smartsheet_get_fields(sheet_id, url)   → field schema (types, IDs)
3. smartsheet_get_records(sheet_id, url)  → records + _rows (cells unwrapped, timestamps ISO)

docid를 추측하는 대신 전체 url(?scode= 포함)을 전달하세요 — 백엔드가 이를 해석합니다. 접두사를 제거하여 docid를 수동으로 추출하는 것은 오류가 발생하기 쉽습니다(경험적으로: 301085 invalid docid).


문제 해결

errcode

의미

해결 방법

851000

文档链接有误

url + scode 확인, 또는 docid 사용

851002

文档类型与工具不兼容

smartsheet → smartsheet_get_* 사용

851003

无文档权限

smartsheet는 smartsheet_get_* 사용;일반 문서는 관리자 콘솔 권한 확인

851008

缺文档内容读取权限

企微后台 → 机器人 → API 权限

301085

无效 docid

scode 포함 전체 url 사용

40058

参数缺失

smartsheet는 sheet_id 필요(먼저 get_sheet)


관련 프로젝트

프로젝트

초점

공식 robot-doc MCP

백엔드 (HTTP, ≥10인 기업)

wecom-bot-mcp-server

webhook을 통한 봇 메시징

이 서버

robot-doc stdio 프록시 + 사용성


테스트

pip install -e ".[dev]"  # or: pip install pytest httpx
pytest

25개의 단위 테스트가 SSE/JSON 파싱, ms-타임스탬프 정규화, 셀 언랩, 오류 인간화, 서버 라우팅/후처리를 다룹니다 — 모두 오프라인(httpx 모킹).


라이선스

MIT

Available Tools

9 tools
wecom_create_docA

Create a new WeCom document or smartsheet. Returns url and docid — save the docid for subsequent edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_nameYesDocument name (max 255 chars)
doc_typeYes3 = regular document, 10 = smartsheet

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It indicates the tool is a create operation (non-destructive) and provides essential output info. However, it does not mention any side effects, auth requirements, or error conditions, which is a gap given the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that communicates purpose and key output. It is front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is simple with two required params, no nested objects, and no output schema, the description covers the creation purpose and output. However, it lacks workflow guidance (e.g., how to use docid with sibling tools) and does not explain return format details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds that docid is for subsequent edits, but does not elaborate on the meaning of doc_name or doc_type beyond the schema. A score of 3 is appropriate as per guidelines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new WeCom document or smartsheet, specifying the two types via doc_type. It distinguishes this from siblings like wecom_edit_doc and wecom_read_doc by using the verb 'create' and mentioning the output (url and docid).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creation tasks and instructs to save the docid for subsequent edits, suggesting a common workflow. However, it does not explicitly state when not to use this tool or compare with alternatives such as wecom_edit_doc for modifications.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_edit_docB

Write Markdown content to a WeCom document. Supports headings, lists, tables, bold, italic. Use docid (preferred) or url to identify the document.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesMarkdown content to write
docidNoDocument docid from wecom_create_doc (preferred)
urlNoDocument URL (fallback if docid unavailable)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool writes content but does not disclose if the operation is destructive (overwrites vs appends), whether it requires special permissions, or what happens if the document does not exist. This is a significant gap 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The first sentence states the action, the second provides necessary detail on supported syntax and identification methods. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description could benefit from mentioning return behavior (e.g., success confirmation, errors). The tool has 3 params, one required, and current description covers identification but not the write behavior (overwrite vs append) or effects on existing content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds value by explaining that 'docid' is preferred and 'url' is a fallback, which clarifies their relative importance beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Write' and resource 'Markdown content to a WeCom document', and lists supported syntax (headings, lists, tables, bold, italic). However, it does not explicitly distinguish itself from sibling tools like wecom_read_doc or wecom_get_doc_content, though the action is different.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions using docid (preferred) or url to identify the document, which gives some guidance. But it does not explain when to use this tool over alternatives, e.g., when to edit vs create (wecom_create_doc) or read (wecom_read_doc).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_get_doc_contentA

Fetch the full content of a WeCom online doc as Markdown. Uses async polling internally.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesDocument URL
task_idNoPolling task_id (omit on first call)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'Uses async polling internally', disclosing behavioral trait beyond what the schema provides (which only lists parameters). Without annotations, this is valuable. It also implies the tool may return partial results initially.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, concise and front-loaded with the purpose. The second sentence adds behavioral context. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description could be improved by mentioning the return format (Markdown) and any limits. However, it covers the main purpose and polling nature adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds that task_id is for polling and implies it should be omitted on first call, but this is already in the schema description. So baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch the full content of a WeCom online doc as Markdown', which is a specific verb ('Fetch') and resource ('WeCom online doc'). It also distinguishes from siblings like wecom_read_doc likely by focusing on full content and Markdown format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Uses async polling internally', which implies it is for getting full content and may require an initial call with just url and then polling with task_id. However, it does not explicitly state when to use this vs siblings or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_read_docA

Read a WeCom document or smartsheet. Returns content as Markdown. Auto-detects URL type: /smartsheet/ URLs return table data, /doc/ URLs return document content.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull WeCom doc or smartsheet URL (include scode param if present)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; the description carries full burden. It discloses auto-detection of URL type and return format (Markdown). However, it does not mention potential errors, rate limits, or whether authentication is needed. Still, for a read tool, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all essential. No fluff, front-loaded with purpose, then adss specific behavior about return format and URL auto-detection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only one parameter, no output schema, and no annotations, the description is relatively complete. It explains input, behavior, and output. Could mention pagination or limitations for large docs, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the url parameter is described). The description adds meaning beyond the schema by explaining what URLs are accepted and how they are processed (auto-detect). It could be more precise about the scode parameter, but minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a WeCom document or smartsheet and returns content as Markdown. It distinguishes itself from siblings (e.g., wecom_get_doc_content, wecom_smartsheet_get_records) by focusing on reading with Markdown output and URL auto-detection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when not to use this tool vs. siblings, but it does provide context on URL types (smartsheet vs. doc) and what to expect. Implicitly, if the user wants raw data or specific fields, other tools might be better, but this is not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_smartsheet_add_recordsA

Append rows to a smartsheet. Each record is a plain {column_name: value} dict — cell format conversion is handled automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSmartsheet URL
docidNoSmartsheet docid
sheet_idYesSheet ID
recordsYesList of {column_name: value} objects

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It correctly states mutation ('Append rows') but does not disclose potential side effects, error behaviors (e.g., row limit, duplicate handling), or authentication requirements. The automatic format conversion is mentioned, which is a behavioral trait, but more could be said.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: first defines purpose, second clarifies input format. No wasted words. Could be slightly more structured (e.g., bullet points for prerequisites), but it is efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description covers the key action and input format but lacks details on error cases, rate limits, or what happens on success. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are described in the schema. The description adds value by explaining the records parameter format ('plain dict') and that cell conversion is automatic, which is not in the schema. The other parameters (url, docid, sheet_id) are already clear from schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Append rows to a smartsheet') and the input format ('Each record is a plain {column_name: value} dict'). It distinguishes from sibling tools like wecom_smartsheet_get_records (read) and wecom_smartsheet_setup_fields (schema setup). The scope of operation is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when you need to add data to an existing smartsheet, but does not explicitly state when not to use it (e.g., for creating new sheets or updating existing records) or mention alternatives among siblings. It provides no prerequisites or context about required identifiers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_smartsheet_get_fieldsA

Get column definitions (field names, types, IDs) for a smartsheet sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSmartsheet URL
sheet_idYesSheet ID

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It correctly states 'Get column definitions', indicating a read operation. However, it does not disclose any behavioral traits such as pagination, performance, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action and resource. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature and good schema coverage, the description is adequate but could include what happens if a sheet doesn't exist or if parameters are invalid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already provides descriptions. The description adds no extra meaning beyond what the schema gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with the verb 'Get' and specifies the resource 'column definitions for a smartsheet sheet', clearly distinguishing it from siblings like wecom_smartsheet_add_records and wecom_smartsheet_get_records. It also lists the content: field names, types, IDs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., wecom_smartsheet_get_sheet or wecom_smartsheet_setup_fields). The description implies it is for reading metadata, but does not explicitly state when to choose this over other sheet-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_smartsheet_get_recordsC

Fetch all rows from a smartsheet sheet. Returns structured row data.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSmartsheet URL
sheet_idYesSheet ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It lacks details on read-only nature, pagination, authorization requirements, or rate limits. The word 'Fetch' implies read, but no explicit safety guarantee.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and to the point with two sentences. No redundant information, but could be improved by front-loading the core action more clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is incomplete. It doesn't explain what 'structured row data' includes, how errors are handled, or whether results are paginated. For a fetch operation, return format is crucial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with both parameters having descriptions. However, the description adds no extra meaning beyond the schema—no format or usage hints for url or sheet_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch all rows from a smartsheet sheet' with the verb 'Fetch' and resource 'rows from a smartsheet sheet', and distinctively mentions 'all rows' versus sibling tools like 'wecom_smartsheet_get_fields' which fetches fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings like 'wecom_smartsheet_get_sheet' (which likely returns sheet metadata) or 'wecom_smartsheet_add_records'. The description only says what it does, not when to prefer it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_smartsheet_get_sheetA

List all sheets (sub-tables) in a WeCom smartsheet. Returns sheet IDs and titles.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSmartsheet URL

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it returns IDs and titles, which is helpful. Since no annotations are provided, the description carries the full transparency burden. It lacks detail about potential side effects (none expected for a list operation), permissions, or pagination. But it correctly implies a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and directly states the tool's purpose and return value. No superfluous words; it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with one parameter and no output schema, the description is adequate but minimal. It doesn't explain the format of the return (e.g., whether it's a list of objects) or any limitations. It lacks contextual completeness about potential errors or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with one parameter 'url' having a description 'Smartsheet URL'. The description does not add new meaning beyond the schema; it just reiterates that it lists sheets. With high schema coverage, the baseline is 3, and there is no extra parameter context added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing sheets in a WeCom smartsheet and returning their IDs and titles. It uses the specific verb 'list' and identifies the resource (sheets/sub-tables). However, it does not differentiate this tool from siblings like wecom_smartsheet_get_fields or wecom_smartsheet_get_records, which might list other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need to discover available sheets and their IDs. However, it does not provide explicit guidance on when not to use it or mention alternatives like wecom_smartsheet_get_fields for columns or wecom_smartsheet_get_records for data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wecom_smartsheet_setup_fieldsA

Initialize a smartsheet's column schema. Renames the default field and adds remaining fields. Must be called before adding records to a new sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSmartsheet URL (or use docid)
docidNoSmartsheet docid (or use url)
sheet_idYesSheet ID from wecom_smartsheet_get_sheet
field_namesYesColumn names in order

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates it renames the default field and adds fields, hinting at destructive or setup behavior. However, no annotations are provided, so the description carries the full burden. It lacks details on reversibility, idempotency, or what happens if called on an already-initialized sheet, which is a gap for a setup action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that cover purpose, action, and prerequisite. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters (2 required) and no output schema, the description provides basic setup context but omits details like what the default field is renamed to, error handling, or return value. The note about ordering is helpful but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description does not add meaning beyond the schema; 'field_names' purpose is clear from context. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool initializes a smartsheet's column schema by renaming the default field and adding remaining fields. The verb 'Initialize' and resource 'column schema' are specific, and the setup nature distinguishes it from read/record siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool must be called before adding records to a new sheet, giving clear temporal guidance. However, it does not mention when not to use this tool versus alternatives like wecom_smartsheet_get_fields, so it is not a full 5.

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.

  1. 9 tool updatesv1.0.0
    • First observedwecom_create_doc
    • First observedwecom_edit_doc
    • First observedwecom_get_doc_content
    • First observedwecom_read_doc
    • First observedwecom_smartsheet_add_records
    • First observedwecom_smartsheet_get_fields
    • First observedwecom_smartsheet_get_records
    • First observedwecom_smartsheet_get_sheet
    • First observedwecom_smartsheet_setup_fields

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation4/5

Tools are mostly distinct: docs (create, edit, get, read) vs smartsheets (add_records, get_fields, get_records, get_sheet, setup_fields). However, wecom_get_doc_content and wecom_read_doc overlap in purpose (both fetch content), though read auto-detects smartsheets, creating slight ambiguity.

Naming Consistency4/5

All tools follow wecom_verb_noun pattern, but verbs vary (create, edit, get, read, add, setup). Consistent snake_case and prefix, but 'get' vs 'read' for similar operations is a minor inconsistency.

Tool Count5/5

With 9 tools covering document and smartsheet operations, the count is well-scoped. Each tool serves a clear purpose without redundancy, appropriate for the domain.

Completeness4/5

Covers core CRUD for docs (create, edit, read) and smartsheets (schema, records, sheets). Missing delete/update for smartsheets or document deletion, but essential workflows are complete, so minor gaps.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A tool designed to help users connect AI Agents with the Feishu/Lark platform, encapsulating Feishu/Lark Open Platform API interfaces as MCP tools for document processing, conversation management, calendar scheduling and more.
    6,381 npm
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    This is the Feishu/Lark official OpenAPI MCP (Model Context Protocol) tool designed to help users quickly connect to the Feishu/Lark platform and enable efficient collaboration between AI Agents and Feishu/Lark. The tool encapsulates Feishu/Lark Open Platform API interfaces as MCP tools, allowing AI assistants to directly call these interfaces and implement various automation scenarios such as document processing, conversation management, calendar scheduling, and more.
    6,381 npm
    MIT