摘要
Canny 客户反馈:读取看板、帖子和功能请求及其投票和评论,查看带 MRR 的用户和公司、分类、标签和状态历史,记录新的帖子、投票和评论,通过状态变更、标签和负责人进行分拣,并撰写、排期和发布更新日志条目。
引导式设置
2 分钟将 Canny 连接到 Microsoft Copilot
开始 AnythingMCP Cloud 免费试用,在引导式设置中连接 Canny,再把你的 MCP URL 添加到 Microsoft Copilot。无需代码,也无需自行运行服务器。
无需信用卡 · 7 天试用 · 提供自托管方案
试试这样问
Canny 的示例提示
点击任意提示即可复制,然后粘贴到 Claude、ChatGPT、Cursor、Gemini、Copilot 或 OpenClaw 中,在该连接器上运行。
Claude 是 AI,可能会出错。请核对回答。
💡 无需安装? 直接使用 cloud.anythingmcp.com。 登录、点击 Connectors → Canny、粘贴凭证、生成 MCP API key,即可完成。无 Docker、无
git clone、无本地服务器。
Canny + Microsoft Copilot
Canny 客户反馈:读取看板、帖子和功能请求及其投票和评论,查看带 MRR 的用户和公司、分类、标签和状态历史,记录新的帖子、投票和评论,通过状态变更、标签和负责人进行分拣,并撰写、排期和发布更新日志条目。
前提条件
完整的设置说明已内置在连接器中 (在 store 中选择连接器时可见)。所需环境变量:
CANNY_API_KEY
步骤 1 — 获取凭证
设置大约需要 1 分钟。你需要一个 Canny 工作区,并能访问它的公司设置。
- 在 Canny 中打开 Settings > API & Webhooks(公司设置),把 secret API key 复制到
CANNY_API_KEY。 - 安装连接器并运行
canny_list_boards:它会列出你的反馈看板,并确认密钥可用。
密钥如何传递:Canny 的每次调用,包括读取,都是带 JSON 请求体的 POST。Canny 要求密钥放在请求体的 apiKey 字段中,连接器会自动把它加到每个请求里。这是你整个 Canny 公司的秘密密钥,只交给可信的工作区使用。
读取的内容:
- 看板,包括帖子数、私有标记和管理后台 URL;每个看板的分类(含子分类)和标签。
- 用
canny_list_posts读取帖子(想法和功能请求),可按看板、作者、公司、标签、状态或搜索文本筛选,并按 newest、oldest、score、trending、statusChanged 或 relevance 排序。sort: score或trending能看出最受期待的需求。canny_get_post还会返回自定义字段、ETA、关联的 Jira 或 Linear 问题以及合并历史。 - 评论(包括只有团队可见的内部备注)和投票,带投票人、优先级和时间,可按帖子、看板、作者或用户、公司筛选。
- 状态变更历史:旧状态和新状态、变更人以及附带的评论。
- 用户,包括邮箱、你应用中的用户 ID、所属公司和管理员标记;公司(客户账户),包括域名、月度支出(MRR)、成员数和自定义字段,可按名称或细分搜索。
- 更新日志条目,包括草稿和已排期的条目,带 Markdown 详情、类型、标签和关联帖子。
写入的内容:
- 收集反馈:
canny_create_or_update_user创建这个人(或更新匹配的人),并返回作为作者或投票人所需的 Canny ID;加上companies还会关联并创建公司。然后用canny_create_post提交新想法,或者当有人提出已存在的需求时,用canny_create_vote在现有帖子上投票,可选优先级。canny_create_comment添加评论或回复(parent_id),设置internal: true则是只有团队可见的备注。 - 分拣:
canny_change_post_status设置 open、under review、planned、in progress、complete、closed 或自定义状态。它需要管理员的 Canny ID 作为changer_id,should_notify_voters会给所有投票人发邮件。canny_update_post修改标题、详情、ETA、图片、负责人或自定义字段;canny_change_post_category、canny_add_post_tag和canny_remove_post_tag用来整理帖子;canny_create_category和canny_create_tag用来扩展看板。 - 公司:
canny_update_company修改名称、域名、月度支出或自定义字段。同步的 CRM 可能会覆盖这些值。 - 更新日志:
canny_create_changelog_entry默认写成草稿;published: true或scheduled_for用来发布,post_ids关联本次上线的帖子。canny_update_changelog_entry修改标题、详情、类型、标签和关联帖子(传入的列表会替换原有列表),canny_change_changelog_entry_status用来发布、排期或退回草稿。开启notify时,发布会给你的用户发邮件。
安装时没有关闭任何工具:这个连接器没有删除工具。请注意,带 should_notify_voters 的状态变更和带 notify 发布的更新日志条目都会发送邮件。
ID:所有 ID 都是 24 位十六进制字符串。company_id 筛选使用 canny_list_companies 返回的公司标识(同步公司时为你应用中的 ID)。用于 changer_id、by_id 或 owner_id 的管理员 Canny ID 可从 canny_list_users(isAdmin: true 的条目)获取,或用管理员邮箱调用 canny_get_user。canny_get_user 只能按 Canny ID、邮箱或你应用中的用户 ID 三者之一查找用户。
数据格式:帖子包含 score(票数)、commentCount、status、eta 和 url(管理后台链接)。时间为 UTC 的 ISO 8601。更新日志详情为 Markdown。
分页:有两种方式。canny_list_posts、canny_list_categories、canny_list_tags 和 canny_list_changelog_entries 使用 limit 和 skip,并返回 hasMore。canny_list_comments、canny_list_votes、canny_list_users、canny_list_companies 和 canny_list_status_changes 使用 limit(最多 100)和 cursor:只要 hasNextPage 为 true,AI 就传入返回的 cursor。公司搜索不使用游标分页。
限制:每个密钥在 Free 套餐下每秒 5 次、每小时 1,000 次,付费套餐为 10 次和 5,000 次,Business 为 20 次和 15,000 次。429 会附带 Retry-After。
常见错误:Canny 以 {"error": "..."} 返回错误。与 API 密钥相关的消息会以 401 返回:请从 Settings > API & Webhooks 重新复制秘密密钥。限流消息以 429 返回,其他错误以 400 返回,例如 invalid post id。
该连接器不会删除或合并帖子,不会删除评论、投票、用户或更新日志条目,不会创建看板,也不管理 webhook。
步骤 2 — 安装 adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
步骤 3 — 在 Microsoft Copilot 中添加连接器
你的服务器 URL: 在 AnythingMCP 中打开 MCP Servers → 此连接器所在的服务器,复制它的 URL(
https://cloud.anythingmcp.com/mcp/…)。本指南中出现YOUR_SERVER_ID的地方都用它替换。
Microsoft Copilot 通过在 Copilot Studio 中构建的智能体使用 MCP 服务器:把 AnythingMCP 作为工具添加到智能体,然后把智能体发布到 Microsoft 365 Copilot 和 Teams。Copilot Studio 从 Microsoft 的云端通过 Streamable HTTP 连接,AnythingMCP 支持这种方式。
- 在 Copilot Studio 中打开你的智能体(或新建一个),进入 Tools,选择 Add a tool → New tool → Model Context Protocol。
- 填写 Server name(例如
AnythingMCP)、说明连接器用途的 Server description,以及 Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID。Copilot Studio 根据描述决定何时调用该服务器。 - 身份验证选择 API key,把 Type 设为 Header,请求头名称填
X-API-Key,然后选择 Create。 - 在 Add tool 中选择 Create a new connection,粘贴 AnythingMCP 的 MCP API 密钥(MCP Servers → 你的服务器 → API keys),然后选择 Add to agent。
- 在智能体的 Test 窗格中试一试:提出需要用到
Canny的工具的请求。 - 选择 Publish,然后进入 Channels → Microsoft 365 and Microsoft Teams,保持勾选 Make agent available in Microsoft Copilot,再选择 Add channel。See agent in Teams 会为你安装该智能体;在 Microsoft 365 Copilot 中输入 @ 并选择该智能体。
希望每个用户各自登录?请选择 OAuth 2.0 → Dynamic discovery 代替 API 密钥:每个用户会在智能体首次调用时登录 AnythingMCP。
自托管?请用你实例的公网 HTTPS 地址替换 https://cloud.anythingmcp.com。Copilot Studio 从 Microsoft 的云端连接,因此 localhost 无法使用。
可用工具
| Tool | What it does |
|---|---|
canny_list_boards | All feedback boards of the Canny company with id, name, postCount, isPrivate and url |
canny_get_board | One feedback board by id: name, postCount, isPrivate, created date and admin url |
canny_list_posts | List feedback posts (ideas and feature requests) with title, details, status, score (votes), commentCount, author, board, category, tags… |
canny_get_post | One post with its details, status, score, author, owner, category, tags, custom fields, eta, linked Jira or Linear issues, merge history… |
canny_create_post | Create a post (idea or feature request) on a board for a user |
canny_update_post | Update a post's title, details, ETA, images, custom fields or owner |
canny_change_post_status | Change a post's status (open, under review, planned, in progress, complete, closed or a custom status), recorded under an admin, optionally… |
canny_change_post_category | Move a post to another category of its board, or remove its category with the text null |
canny_add_post_tag | Add a tag to a post |
canny_remove_post_tag | Remove a tag from a post |
canny_list_comments | List portal comments, newest first, with value, author, post, parent, internal flag and likes |
canny_get_comment | One portal comment by id with its value, author, post, images and internal flag |
canny_create_comment | Add a comment to a post, as a reply when parent_id is set. internal comments are visible to the team only |
canny_list_votes | List votes, newest first, with the voter, post, priority and time |
canny_create_vote | Record a vote by a user on a post, optionally with a priority, for example when a customer asks for a feature in a call or ticket |
canny_list_users | List the end users of the workspace with id, name, email, userID (the id in your app), companies and admin flag |
canny_get_user | Find one user by exactly one of: Canny id, email, or the user id in your application |
canny_create_or_update_user | Create a user, or update the one matching email, user_id or id, and return its Canny id for use as author or voter |
canny_list_companies | List companies (customer accounts) with id, name, domain, monthlySpend, memberCount and custom fields, ordered by creation |
canny_update_company | Update a company's name, domain, monthly spend (MRR in dollars), creation date or custom fields |
canny_list_categories | List post categories (and subcategories with parentID), newest first, with name, postCount and board |
canny_create_category | Create a category, or a subcategory with parent_id, on a board |
canny_list_tags | List tags, newest first, with id, name, postCount and board |
canny_create_tag | Create a tag on a board, or return the existing tag with that name |
canny_list_status_changes | History of post status changes, newest first: post, old and new status, changer and the attached comment |
canny_list_changelog_entries | List changelog entries, drafts and scheduled ones included, with title, markdown details, status, types, labels, linked posts, publishedAt… |
canny_create_changelog_entry | Write a changelog entry as a draft (default), publish it now or schedule it, and link the posts it ships. notify emails users once it is… |
canny_update_changelog_entry | Change the title, details, types, labels, linked posts or notify flag of a changelog entry |
canny_change_changelog_entry_status | Publish a changelog entry now, schedule it for a future time, or set it back to draft (unpublish or unschedule) |
示例提示
- “我们的 Feature Requests 看板上,票数最多的十个未完成功能请求是什么?”
- “上个月哪些帖子变成了 planned 或 in progress,是谁改的?”
- “为深色模式需求投票的公司中,哪些 MRR 最高?”
- “[email protected] 今天在电话里要求 CSV 导出。把她的票加到现有帖子上,如果没有就创建这个帖子。”
- “为新的批量编辑功能写一条更新日志草稿,并关联它上线的帖子。”
FAQ
这适用于哪个 Copilot? 适用于工作中的 Microsoft 365 Copilot,通过 Copilot Studio 的智能体实现。面向个人账户的 Microsoft Copilot 应用无法添加自己的 MCP 服务器。
我需要什么? 一个可以使用 Copilot Studio 的工作账户(许可证或试用版),用于构建智能体。在 Microsoft 365 Copilot 或 Teams 中使用它的人需要拥有该智能体的访问权限:把它共享给他们,或请管理员为整个组织发布。如果你的组织对 Power Platform 连接器设置了数据策略,这些策略同样适用于 MCP 服务器。
智能体不调用工具。 检查请求头名称是否正好是 X-API-Key,密钥是否属于与 URL 相同的 MCP 服务器,并把 Server description 写得具体:Copilot Studio 根据它决定何时调用服务器。每次修改后重新发布智能体;在已打开的对话中输入 "start over" 即可使用新版本。
下一步
这份指南对你有帮助吗?