Skip to main content
Glama
Roland0511

MCP Feishu Project Manager

by Roland0511

⚠️ 项目已归档 飞书项目已推出官方的MCP Server服务。

因此后续本仓库不再进行维护或更新。
请勿提交新的 Issue、Pull Request 或修改请求。
若需参考历史内容,可在只读模式下浏览本仓库。

👉 建议查看飞书项目官方文档以获得最新的支持。

MCP-飞书项目管理工具

基于MCP(Model Context Protocol)协议的飞书项目管理工具,允许AI助手通过MCP协议与飞书项目管理系统进行交互。

项目简介

本项目是一个MCP服务器实现,它封装了飞书项目管理的Open API,使AI助手能够获取飞书项目的视图列表、视图详情等信息。通过这个工具,AI助手可以帮助用户管理和查询飞书项目中的工作项。

Related MCP server: Task Manager MCP Server

使用方法

在支持MCP协议的客户端(如Claude桌面客户端,Cursor,Cline等)的配置文件中添加本服务器。

更多MCP客户端可参考:https://modelcontextprotocol.io/clients

以Claude桌面客户端为例,编辑claude_desktop_config.json文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

mcpServers字段中添加以下配置:

{
  "mcpServers": {
    "feishuproj": {
      "command": "uvx",
      "args": ["mcp-feishu-proj@latest","--transport", "stdio"],
      "env": {
        "FS_PROJ_PROJECT_KEY": "your_project_key",
        "FS_PROJ_USER_KEY": "your_user_key",
        "FS_PROJ_PLUGIN_ID": "your_plugin_id",
        "FS_PROJ_PLUGIN_SECRET": "your_plugin_secret"
      }
    }
  }
}

已支持功能(欢迎贡献)

登录认证

  • 登录及认证流程

视图功能

  • 获取飞书项目视图列表

  • 获取视图工作项列表

  • 创建固定视图

  • 更新固定视图

  • 创建条件视图

  • 更新条件视图

  • 删除视图

工作项管理

  • 获取工作项详情

  • 获取创建工作项元数据

  • 创建工作项

  • 更新工作项

  • 批量更新工作项字段值

  • 删除工作项

  • 终止/恢复工作项

  • 获取工作项操作记录

工作项搜索

  • 获取指定的工作项列表(单空间)

  • 获取指定的工作项列表(跨空间)

  • 获取指定的工作项列表(单空间-复杂传参)

  • 获取指定的工作项列表(全局搜索)

  • 获取指定的关联工作项列表

附件管理

  • 添加附件

  • 文件上传

  • 下载附件

  • 删除附件

空间管理

  • 获取空间列表

  • 获取空间详情

  • 获取空间下业务线详情

  • 获取空间下工作项类型

  • 获取空间下团队成员

角色与人员配置

  • 获取流程角色配置详情

空间关联

  • 获取空间关联规则列表

  • 获取空间关联下的关联工作项实例列表

  • 绑定空间关联的关联工作项实例

  • 解绑空间关联的关联工作项实例

流程与节点

  • 获取工作流详情

  • 获取工作流详情(WBS)

  • 更新节点/排期

  • 节点完成/回滚

  • 状态流转

流程配置

  • 获取工作项下的流程模板列表

  • 获取流程模板配置详情

  • 新增流程模板

  • 更新流程模板

  • 删除流程模板

子任务

  • 获取指定的子任务列表

  • 获取子任务详情

  • 创建子任务

  • 更新子任务

  • 子任务完成/回滚

  • 删除子任务

评论

  • 添加评论

  • 查询评论

  • 更新评论

  • 删除评论

其他功能

  • 拉机器人入群

  • 获取度量图表明细数据

  • 获取流程角色配置详情

开发指南

开发环境配置

  1. 克隆本仓库:

git clone https://github.com/yourusername/mcp-feishu-proj.git
cd mcp-feishu-proj
  1. 安装依赖(使用uv):

# 安装uv(如果尚未安装)
pip install uv
# 创建虚拟环境并安装依赖
uv venv
uv pip install -e .

配置说明

  1. 复制环境变量示例文件并进行配置:

cp .env.example .env
  1. 编辑.env文件,填入以下必要的配置信息:

FS_PROJ_BASE_URL=https://project.feishu.cn/
FS_PROJ_PROJECT_KEY=your_project_key
FS_PROJ_USER_KEY=your_user_key
FS_PROJ_PLUGIN_ID=your_plugin_id
FS_PROJ_PLUGIN_SECRET=your_plugin_secret

其中:

  • FS_PROJ_BASE_URL:飞书项目API的基础URL,默认为https://project.feishu.cn/

  • FS_PROJ_PROJECT_KEY:飞书项目的标识

  • FS_PROJ_USER_KEY:用户标识

  • FS_PROJ_PLUGIN_ID:飞书项目Open API的插件ID

  • FS_PROJ_PLUGIN_SECRET:飞书项目Open API的插件密钥

添加新功能

要添加新的飞书项目API功能,请按照以下步骤操作:

  1. fsprojclient.py中添加新的API方法

  2. server.py中使用@mcp.tool装饰器注册新的MCP工具

飞书项目Open API参考

本项目包含了飞书项目Open API的Postman集合,位于docs/open-api-postman目录下,将目录下文件导入Postman可以进行快速调试飞书项目接口:

  • postman_environment.json:Postman环境变量配置

  • postman_collection.json:Postman API集合

容器化部署指南

Docker部署

本项目提供了Docker部署支持,可以通过Docker容器运行MCP飞书项目服务。

前提条件

使用Docker Compose运行

  1. 创建.env文件,设置必要的环境变量

cp .env.example .env

然后编辑.env文件,填入你的飞书项目相关信息:

FS_PROJ_BASE_URL=https://project.feishu.cn/
FS_PROJ_PROJECT_KEY=your_project_key
FS_PROJ_USER_KEY=your_user_key
FS_PROJ_PLUGIN_ID=your_plugin_id
FS_PROJ_PLUGIN_SECRET=your_plugin_secret
  1. 使用Docker Compose启动服务

docker-compose -f docker/docker-compose.yml up -d

这将使用ghcr.io/astral-sh/uv镜像,并挂载项目根目录到容器中,直接运行本地代码,便于开发和调试。Docker Compose会自动加载项目根目录中的.env文件作为环境变量。

  1. 查看日志

docker-compose -f docker/docker-compose.yml logs -f
  1. 停止服务

docker-compose -f docker/docker-compose.yml down

更多详细信息请参阅Docker部署文档

Kubernetes部署

前提条件

  • 一个可用的Kubernetes集群

  • 已安装kubectl命令行工具

  • 具有创建Deployment、ConfigMap和Secret的权限

部署步骤

  1. 准备Secret

首先,需要创建包含敏感信息的Secret。由于Kubernetes Secret需要使用base64编码的值,您需要对敏感信息进行编码:

# 对敏感信息进行base64编码
echo -n "your_project_key" | base64
echo -n "your_user_key" | base64
echo -n "your_plugin_id" | base64
echo -n "your_plugin_secret" | base64

然后,使用生成的base64编码值更新k8s-secret.yaml文件中的相应字段。

  1. 应用配置

依次应用以下配置文件:

# 创建ConfigMap
kubectl apply -f k8s-configmap.yaml

# 创建Secret
kubectl apply -f k8s-secret.yaml

# 创建Deployment
kubectl apply -f k8s-deployment.yaml
  1. 验证部署

检查部署状态:

# 查看Deployment状态
kubectl get deployments

# 查看Pod状态
kubectl get pods

# 查看Pod日志
kubectl logs -f <pod-name>

更多详细信息请参阅Kubernetes部署文档

贡献指南

欢迎贡献代码、报告问题或提出改进建议。请遵循以下步骤:

  1. Fork本仓库

  2. 创建您的特性分支 (git checkout -b feature/amazing-feature)

  3. 提交您的更改 (git commit -m 'Add some amazing feature')

  4. 推送到分支 (git push origin feature/amazing-feature)

  5. 创建一个Pull Request

许可证

本项目采用MIT许可证。详情请参阅LICENSE文件。

Available Tools

6 tools
get_flow_rolesB

获取流程角色配置详情 Args: work_item_type_key: 工作项类型,可选值为"story"、"version"、"issue", 分别对应需求、版本、缺陷。

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_type_keyYes

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 the full burden of behavioral disclosure. It only states what the tool does ('获取流程角色配置详情') and lists parameter values, without describing any behavioral traits like whether it's read-only, requires authentication, has rate limits, or what the output format might be. For a tool with no annotations, this is a significant gap in transparency.

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 appropriately sized and front-loaded, starting with the tool's purpose followed by parameter details. It uses two sentences efficiently, with no wasted words. However, the structure could be slightly improved by separating the purpose and parameter sections more clearly, but it remains concise and well-organized.

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 complexity (single parameter with enum), no annotations, and no output schema, the description is partially complete. It explains the parameter semantics well, but lacks behavioral context and usage guidelines. For a retrieval tool, it should ideally describe the output or behavior more, but the parameter coverage helps balance this. It meets a minimum viable level but has clear gaps in overall context.

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

Parameters5/5

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

The description adds substantial meaning beyond the input schema. The schema has 0% description coverage, only providing an enum without explanations. The description explicitly defines the parameter 'work_item_type_key' and maps each enum value to its semantic meaning: 'story' to '需求' (requirement), 'version' to '版本' (version), and 'issue' to '缺陷' (defect). This compensates fully for the low schema coverage, making the parameter usage clear.

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: '获取流程角色配置详情' (Get process role configuration details). It specifies the verb '获取' (get) and the resource '流程角色配置详情' (process role configuration details), which is specific and meaningful. However, it doesn't differentiate this tool from its siblings (e.g., get_view_detail, get_work_item_detail), which are also retrieval tools, so it doesn't fully distinguish itself in context.

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?

The description provides no guidance on when to use this tool versus alternatives. It lists the parameter values but doesn't explain the context or prerequisites for invoking it, such as when process role details are needed compared to other details available from sibling tools. There's no mention of alternatives or exclusions, leaving usage unclear.

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

get_view_detailB

根据视图id获取指定视图下的工作项列表 Args: view_id: 视图标识id page_num: 页码,默认为1 page_size: 每页数量,默认为20

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYes
page_numNo
page_sizeNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination behavior (page_num and page_size with defaults), which is useful context beyond just listing parameters. However, it doesn't describe important behavioral aspects like whether this is a read-only operation, what permissions might be required, rate limits, error conditions, or the format/structure of the returned work item list. For a tool with 3 parameters and no annotations, this leaves significant gaps.

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 appropriately concise with a clear purpose statement followed by parameter explanations. The two-sentence structure is efficient with zero waste. However, the parameter explanations could be slightly more integrated with the purpose statement rather than presented as a separate 'Args:' section, preventing a perfect score.

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 (3 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose and parameter semantics adequately but lacks behavioral context and usage guidelines. Without annotations or output schema, the description should ideally provide more information about what the tool returns and how it behaves, but it does the minimum viable job for a read operation.

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?

The description provides meaningful semantic information for all 3 parameters beyond what the schema offers. The schema has 0% description coverage (only titles), while the description explains: 'view_id: 视图标识id' (view identification ID), 'page_num: 页码,默认为1' (page number, default 1), and 'page_size: 每页数量,默认为20' (items per page, default 20). This adds crucial context about parameter purposes and default values that the schema lacks.

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: '根据视图id获取指定视图下的工作项列表' (Get work item list under specified view based on view ID). It specifies the verb '获取' (get) and resource '工作项列表' (work item list) with the scope '指定视图下' (under specified view). However, it doesn't explicitly differentiate from sibling tools like get_view_list or get_work_item_detail, which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like get_view_list (which might list views rather than items within a view) or get_view_detail_by_name (which appears to do similar functionality by name instead of ID). There's no context about prerequisites, when this tool is appropriate, or what alternatives exist.

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

get_view_detail_by_nameB

根据视图名称获取指定视图下的工作项列表 Args: view_name: 视图名称 work_item_type_key: 工作项类型,可选值为"story"、"version"、"issue", 分别对应需求、版本、缺陷。 page_num: 页码,默认为1 page_size: 每页数量,默认为20

ParametersJSON Schema
NameRequiredDescriptionDefault
view_nameYes
work_item_type_keyYes
page_numNo
page_sizeNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination behavior (default page_num=1, page_size=20) which is useful, but doesn't cover other important aspects like authentication requirements, rate limits, error conditions, or what happens when the view doesn't exist. For a tool with 4 parameters and no annotation coverage, this 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.

Conciseness4/5

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

The description is appropriately sized and well-structured. It starts with the core purpose, then lists parameters with clear explanations. Each parameter description earns its place by adding value beyond the schema. The formatting with 'Args:' section makes it easy to parse.

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, no annotations, and no output schema, the description does a good job with parameters but lacks completeness. It doesn't explain what the tool returns (work item list format), error conditions, or authentication requirements. For a data retrieval tool with pagination, more behavioral context would be helpful, though the parameter documentation is strong.

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

Parameters5/5

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

The description provides excellent parameter semantics beyond the input schema. While schema description coverage is 0%, the description explains: 1) view_name is required, 2) work_item_type_key has specific enum values with Chinese translations ('story'='需求', 'version'='版本', 'issue'='缺陷'), 3) page_num defaults to 1, 4) page_size defaults to 20. This fully compensates for the lack of 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 tool's purpose: '根据视图名称获取指定视图下的工作项列表' (Get work item list under specified view by view name). It specifies the verb ('获取' - get) and resource ('工作项列表' - work item list), but doesn't differentiate from sibling tools like 'get_view_detail' or 'get_view_list', which likely have similar functionality.

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 is provided about when to use this tool versus alternatives. The description doesn't mention sibling tools like 'get_view_detail' or 'get_view_list', nor does it explain what distinguishes this tool from them. There's no context about prerequisites or when-not-to-use scenarios.

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

get_view_listB

获取当前飞书项目下的某一类型工作项的所有视图列表 Args: work_item_type_key: 工作项类型,可选值为"story"、"version"、"issue", 分别对应需求、版本、缺陷。

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_type_keyYes

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 the full burden of behavioral disclosure. It describes a read operation ('获取' - get) but doesn't mention any behavioral traits such as permissions required, rate limits, pagination, or what the output looks like (e.g., list format, fields included). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a parameter explanation. There's no wasted text, and the structure is logical. However, the use of both Chinese and English in the Args section might slightly reduce clarity for non-bilingual agents, but it remains efficient.

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 low complexity (1 parameter, no nested objects) but lack of annotations and output schema, the description is moderately complete. It covers the purpose and parameter semantics well, but fails to address behavioral aspects like output format or operational constraints. This makes it adequate for basic use but insufficient for full agent understanding without additional context.

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?

The description adds meaningful semantics beyond the input schema. The schema only provides an enum for work_item_type_key with values 'story', 'version', 'issue', but the description explains these correspond to '需求' (requirement), '版本' (version), and '缺陷' (defect) in Chinese, clarifying the business context. With 0% schema description coverage and 1 parameter, this compensation is effective, though it could note if the parameter is required.

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: '获取当前飞书项目下的某一类型工作项的所有视图列表' (Get all view lists for a specific type of work item in the current Feishu project). It specifies the verb ('获取' - get) and resource ('视图列表' - view lists), with context about the project and work item type. However, it doesn't explicitly differentiate from sibling tools like get_view_detail or get_view_detail_by_name, which appear to fetch individual views rather than lists.

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 usage by specifying the work item type parameter and its possible values, suggesting this tool is used to retrieve views filtered by work item type. However, it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., get_view_detail for single views) or any prerequisites. The context is clear but lacks comparative or exclusionary statements.

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

get_work_item_detailB

获取指定工作项的详情信息 Args: work_item_type_key: 工作项类型,可选值为"story"、"version"、"issue", 分别对应需求、版本、缺陷。 work_item_ids: 工作项ID,多个ID之间用逗号分隔

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_type_keyYes
work_item_idsYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states what the tool does (retrieves details) but doesn't mention whether this is a read-only operation, what permissions might be required, whether there are rate limits, what format the details come in, or any error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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 appropriately concise with a clear structure: purpose statement followed by parameter explanations. The Chinese text is efficient with no wasted words. It could be slightly improved by front-loading the most critical information more explicitly, but overall it's well-structured and to the point.

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 (2 required parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does and documents the parameters well, but lacks information about the return format, error handling, or behavioral constraints. Without annotations or output schema, the agent won't know what to expect from the response.

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

Parameters5/5

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

The description provides excellent parameter semantics beyond the input schema. While the schema has 0% description coverage, the description explains: 1) what 'work_item_type_key' represents ('工作项类型' - work item type), 2) the meaning of each enum value ('story'对应需求, 'version'对应版本, 'issue'对应缺陷), and 3) how to format 'work_item_ids' ('多个ID之间用逗号分隔' - multiple IDs separated by commas). This fully compensates for the schema's lack of 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 tool's purpose: '获取指定工作项的详情信息' (Get details of specified work items). It specifies the verb ('获取' - get) and resource ('工作项的详情信息' - work item details), making the purpose unambiguous. However, it doesn't distinguish this tool from potential sibling tools that might also retrieve work item information, keeping it from a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. While sibling tools like 'get_view_detail' or 'get_work_item_type_meta' exist, there's no indication of when this specific tool is appropriate versus those others. The description only explains what the tool does, not when to choose it.

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

get_work_item_type_metaB

获取工作项类型元数据 - 在工作项详情的"fields"字段中各个字段的具体意义及信息可以在工作项类型元数据中获取 Args: work_item_type_key: 工作项类型,可选值为"story"、"version"、"issue", 分别对应需求、版本、缺陷。

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_type_keyYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns (metadata about field meanings) but doesn't mention whether this is a read-only operation, potential rate limits, authentication requirements, error conditions, or response format. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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 appropriately concise with a clear purpose statement followed by bullet points for usage context and parameter explanation. The structure is logical and front-loaded with the main purpose. Every sentence adds value, though the formatting could be slightly cleaner.

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 has 1 parameter with 0% schema description coverage and no output schema or annotations, the description does an adequate job explaining the parameter semantics and general purpose. However, it doesn't describe the return format, error handling, or behavioral constraints that would be important for a metadata retrieval tool. The description is minimally viable but has clear gaps.

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?

The description adds valuable semantic information beyond the input schema. While the schema only shows an enum with values 'story', 'version', 'issue', the description explains what these values represent in the domain context: '分别对应需求、版本、缺陷' (corresponding to requirement, version, defect respectively). This translation of technical keys to business concepts is helpful context that the schema alone doesn't provide.

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: '获取工作项类型元数据' (Get work item type metadata) and explains that this metadata provides field meanings and information in work item details. It specifies the resource (work item type metadata) and verb (get), but doesn't explicitly differentiate from sibling tools like get_work_item_detail.

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?

The description provides some usage context by mentioning that the metadata helps understand fields in work item details, but it doesn't explicitly state when to use this tool versus alternatives like get_work_item_detail or other sibling tools. There's no guidance on prerequisites, exclusions, or specific scenarios for choosing this tool.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes focused on different aspects of project management (roles, views, work items, metadata), but get_view_detail and get_view_detail_by_name have significant overlap as both retrieve work item lists from views using different identifiers. The descriptions clarify the difference (view_id vs view_name), but the core functionality is similar, which could cause some confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with clear, descriptive names (get_flow_roles, get_view_detail, get_view_list, etc.). The naming convention is uniform throughout the set, making it easy to understand each tool's purpose at a glance.

Tool Count4/5

With 6 tools, the count is reasonable for a project management server, covering key operations like retrieving roles, views, and work items. However, it feels slightly thin as it lacks update, create, or delete operations, which are common in such domains, limiting it to read-only functionality.

Completeness2/5

The tool set is severely incomplete for a project manager server, as it only provides read operations (get_*). There are no tools for creating, updating, or deleting work items, views, or roles, which are essential for managing a project lifecycle. This will likely cause agent failures when trying to perform basic project management tasks.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Roland0511/mcp-feishu-proj'

If you have feedback or need assistance with the MCP directory API, please join our Discord server