关于 Instagram MCP Server
Instagram MCP Server 是托管的只读 MCP 服务,供 Claude、Cursor 等 MCP 客户端查询公开 Instagram 资料、帖子和评论,并以结构化 JSON 返回。
主要功能
- 01按用户名查询公开资料与简介链接
- 02分页获取公开帖子及互动数据
- 03获取帖子或 Reels 的评论
- 04解析标签、提及和标记用户
- 05提供个人资料查询提示词
适用场景
- 01比较多个账号的粉丝数与认证状态
- 02统计近期帖子中的标签和提及
- 03查看公开帖子评论及互动情况
MCP 相关
通过远程 MCP 服务向客户端提供三个只读工具和一个个人资料提示词;客户端可使用流式 HTTP 连接,也可通过 stdio 启动器接入。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.hasdata.com/mcp?apis=instagramclaude mcp add --transport http instagram-mcp-server-0c7612 https://mcp.hasdata.com/mcp?apis=instagram{"mcpServers":{"instagram-mcp-server-0c7612":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=instagram"}}}在 Cursor 中打开{"servers":{"instagram-mcp-server-0c7612":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=instagram"}}}在 VS Code 中打开{"mcpServers":{"instagram-mcp-server-0c7612":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=instagram"}}}{"mcpServers":{"instagram-mcp-server-0c7612":{"serverUrl":"https://mcp.hasdata.com/mcp?apis=instagram"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.hasdata.com/mcp?apis=instagram需要授权工具
3| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | Instagram 帖子或 Reels 的 URL,例如 `https://www.instagram.com/p/Ddjis3vETcP/` 或 `https://www.instagram.com/instagram/reel/DcymgItMFao/`。 |
| nextPageToken | string | 否 | 指定下一页令牌。请使用上一次响应返回的 `nextPageToken` 值。省略此参数可获取第一页。 |
| includeMusic | boolean | 否 | 同时在 `post.music` 中返回 Reels 的音频信息(音频 ID、艺人和歌曲标题),包括授权曲目和原创音频。此操作会在第一页额外请求 Instagram;设置 `nextPageToken` 时会忽略此参数。默认值为 false。 |
详细介绍
Instagram MCP Server
一个托管的模型上下文协议(MCP)服务,为 Claude、Cursor、Windsurf 和任何其他 MCP 客户端提供两个只读的 Instagram 工具。按用户名查找公开账号资料,并以结构化 JSON 遍历其公开帖子动态。
它读取账号的公开数据,不会操作账号。整个流程无需连接任何内容,也不会涉及你的任何账号。
每月免费获得 1,000 个额度,无需银行卡,可调用 Instagram 100 次。
https://mcp.hasdata.com/mcp?apis=instagram
目录
所需条件
一个支持带自定义标头的可流式 HTTP 的 MCP 客户端。一个 HasData API 密钥,可从控制面板获取,免费创建且无需银行卡;免费套餐每月可调用 100 次。无需其他条件。这是一个远程服务,因此最简单的方式是使用 URL 和标头,无需运行容器。仅支持 stdio 的客户端则可使用 @hasdata/instagram-mcp(npm)或 hasdata-instagram-mcp(PyPI)启动器。
快速开始
| URL | https://mcp.hasdata.com/mcp?apis=instagram |
| 传输方式 | HTTP,流式传输 |
| 认证标头 | x-api-key: HASDATA_API_KEY |
所有客户端使用的服务 URL 都相同。我们已在 Claude Code 和 Claude Desktop 中亲自测试。其他配置块则遵循各客户端记录的远程服务格式。
支持 OAuth 的客户端可以将同一 URL 添加为连接器,然后登录,无需将密钥放入配置文件。
Claude Code
claude mcp add --transport http instagram "https://mcp.hasdata.com/mcp?apis=instagram" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Claude Desktop 只能从配置文件加载本地(stdio)服务,因此需要通过 stdio 启动器连接远程服务。@hasdata/instagram-mcp 包就是这个启动器,它会从环境变量读取密钥。
claude_desktop_config.json:
{
"mcpServers": {
"instagram": {
"command": "npx",
"args": ["-y", "@hasdata/instagram-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
想用 Python 而非 Node?将启动器换成 PyPI 包即可,uvx 无需手动安装就能运行它:
{
"mcpServers": {
"instagram": {
"command": "uvx",
"args": ["hasdata-instagram-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
支持 OAuth 的客户端也可以将该 URL 添加为自定义连接器,跳过启动器。
Cursor
.cursor/mcp.json:
{
"mcpServers": {
"instagram": {
"url": "https://mcp.hasdata.com/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"instagram": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Cline
{
"mcpServers": {
"instagram": {
"url": "https://mcp.hasdata.com/mcp?apis=instagram",
"type": "streamableHttp",
"headers": { "x-api-key": "HASDATA_API_KEY" },
"disabled": false
}
}
}
VS Code
.vscode/mcp.json:
{
"servers": {
"instagram": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Gemini CLI
~/.gemini/settings.json:
{
"mcpServers": {
"instagram": {
"httpUrl": "https://mcp.hasdata.com/mcp?apis=instagram",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
提示词示例
以下每个请求都只需调用一次工具,除非另有说明。
获取
@nasa的个人资料,并告诉我其关注者数量、是否已认证,以及简介中的所有链接。
调用一次,10 个积分。对于公开账号,个人资料响应中已包含最近 12 条帖子,因此无需再次调用即可询问近期动态。
比较
@nasa、@natgeo和@bbcearth的关注者数量、关注账号数量,以及每个账号是否已认证。
调用三次,30 个积分。每个账号调用一次。
查看
@nasa最近 50 条帖子,并列出所有话题标签及其出现次数。
调用五次,50 个积分。每次调用返回 12 条帖子,获取 50 条需要翻 5 页。
列出
@natgeo最近 12 条帖子的每条说明中提到的账号,以及每条帖子的类型。
调用一次,10 个积分。提及和话题标签已从帖子对象中的说明解析出来。
这些请求之所以能奏效,主要有两个原因。话题标签和提及会以数组形式从说明中解析出来,Agent 可以直接计数,而不必对文本运行正则表达式。此外,查询个人资料时会在同一响应中返回近期动态。因此,许多研究问题只需调用一次工具。
工具
| 工具 | 返回内容 |
|---|---|
hasdata_instagram_comments_getInstagramComments | 根据 URL 获取公开帖子或 Reels 下的评论,并返回帖子本身及其说明文字、媒体、likesCount、commentsCount 和 timestamp,随后返回每条评论的文本、点赞数、时间戳和作者。每次调用消耗 10 个积分 |
hasdata_instagram_posts_getInstagramPosts | 根据用户名(账号名称)获取公开 Instagram 账号的最新帖子,并返回每条帖子的 ID、短代码、说明文字、类型、产品类型、永久链接、媒体 URL 和像素尺寸、点赞数和评论数、发布时间,以及主题标签、提及对象、标记用户和轮播图成员。每次调用消耗 10 个积分 |
hasdata_instagram_profile_getInstagramProfile | 根据用户名(账号名称)获取公开 Instagram 个人资料,并返回 ID、全名、简介、简介链接、头像 URL、粉丝数和关注数、认证标记,以及最近发布的 12 条帖子。每次调用消耗 10 个积分 |
这 3 个工具均为只读工具。其中两个根据公开账号名称获取数据,另一个根据单条帖子的 URL 获取数据。下面的示例摘自真实调用,但其中的数字会随账号发帖而变化。请将它们视为数据结构示例。每个工具名称都链接到对应的端点参考文档。
示例是响应载荷,而非完整响应。tools/call 的结果包含一个文本块,该文本本身是包含 url、status、text 和 json 的 JSON,抓取的数据位于 json 下。从原始 JSON-RPC 响应中,路径为 result.content[0].text,解析后再读取 .json。聊天客户端会为你解包,而直接与端点通信的代码则不会。
获取 Instagram 个人资料
hasdata_instagram_profile_getInstagramProfile
根据账号名称获取一个公开个人资料。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
handle | string | 是 | 不带 @ 的用户名,与个人资料 URL 中显示的一致 |
返回 id、username、fullName、biography、verified、计数器 followersCount 和 followsCount、profilePicUrl、内部 fbid、bioLinks 数组和 latestPosts。
关于哪些字段有保证、哪些没有:在对 20 个账号的测试中,id、username、followersCount、followsCount、profilePicUrl 和 fbid 每次都会返回。所有公开账号都会返回 fullName、biography、verified、bioLinks 和 latestPosts,这些字段可直接读取,无需设置默认值。
私人账号会返回
private: true,且几乎不包含其他内容。没有简介,除粉丝数外也没有其他计数器,且不会返回帖子。在访问载荷的其他部分之前,请先根据此标记进行分支处理。
bioLinks是对象数组,而非字符串。每个条目都包含url、title、Instagram 自有的redirectUrl包装链接和linkType。需要目标地址时,请读取.url。
{
"id": "528817151",
"username": "nasa",
"fullName": "NASA",
"biography": "Making the seemingly impossible, possible. ✨",
"verified": true,
"followersCount": 104345698,
"followsCount": 91,
"profilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/…",
"fbid": "17841401474538262",
"bioLinks": [
{
"url": "https://www.nasa.gov",
"title": "NASA.gov Homepage",
"redirectUrl": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2F&e=…",
"linkType": "external"
}
],
"latestPosts": [ "…the most recent posts, same shape as the posts tool…" ]
}
获取 Instagram 帖子
hasdata_instagram_posts_getInstagramPosts
按页获取一个账号的公开帖子动态。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
handle | 字符串 | 是 | 不带 @ 的用户名 |
limit | 数字 | 单次响应中帖子的近似上限。实际最多为 12 条,设置更大的值也不会获取更多 | |
nextPageToken | 字符串 | 上一响应中的 pagination.nextPageToken |
limit是大致上限,而非精确数量。12 条帖子为 Instagram 单页的数量,也是单次调用的硬上限;设置limit: 50仍只会返回 12 条。低于上限时,返回数量会接近你请求的数量,但不一定完全一致,具体接近程度取决于账号。以@nasa为例,设置 limit 为 2 时返回了 4 条,设置为 6 时返回了 6 条,设置为 11 时返回了 10 条,设置为 13 时返回了 12 条。请将其视为“数量大致不超过这个值”,并读取数组长度,不要想当然地认为返回数量就是设置的值。
响应仅包含 posts 和 pagination。早期版本会在动态内容旁重复返回账号的身份字段,因此,针对这种结构编写的代码需要通过个人资料调用获取名称和头像。
每条帖子包含 id、shortcode、caption、type、productType、url、ownerUsername、ownerId、displayUrl 和 images,像素尺寸以 dimensionsWidth 和 dimensionsHeight 表示;还包含 hasdataLink,这是指向该帖评论接口的现成链接。只有当说明文字中包含话题标签或提及内容时,才会出现 hashtags 和 mentions。轮播帖会在 childPosts 中包含其子项,而 taggedUsers 列出媒体中标记的账号。
动态内容会同时返回互动数据。每条帖子包含
likesCount和commentsCount,以及两种发布时间:完整 ISO 时间点形式的timestamp和日历日期形式的publishDate。无需再次调用即可按热度排序动态或按日期筛选。此项于 2026-10-07 更新;早期版本的负载中不包含这四个字段。
{
"posts": [
{
"id": "3983374110243288826",
"shortcode": "DdHyaYAifb6",
"caption": "Cementing their names in history.\n\nThe Artemis III crew is leaving their mark […] @NASAKennedy",
"type": "Carousel",
"productType": "carousel_container",
"mentions": ["@NASAKennedy", "@EuropeanSpaceAgency", "@Astro_Luca"],
"url": "https://www.instagram.com/p/DdHyaYAifb6/",
"hasdataLink": "https://api.hasdata.com/scrape/instagram/comments?url=…",
"commentsCount": 1053,
"likesCount": 121490,
"dimensionsWidth": 1440,
"dimensionsHeight": 1800,
"displayUrl": "https://scontent.cdninstagram.com/v/t51.…",
"images": ["https://scontent.cdninstagram.com/v/t51.…"],
"timestamp": "2026-09-10T21:20:24.000Z",
"publishDate": "2026-09-10",
"ownerUsername": "nasa",
"ownerId": "528817151",
"taggedUsers": [{ "id": "549403870", "username": "nasakennedy", "fullName": "NASA's Kennedy Space Center" }],
"childPosts": [{ "id": "3983374043612570267", "type": "Image", "productType": "carousel_item" }]
}
],
"pagination": {
"morePostsAvailable": true,
"nextPageToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…",
"hasdataLink": "https://api.hasdata.com/scrape/instagram/posts?handle=nasa&nextPageToken=…"
}
}
话题标签和提及内容会保留 # 和 @ 前缀;如果要与自行构建的列表进行匹配,这一点很重要。翻页时可根据 morePostsAvailable 标志决定后续操作;hasdataLink 则以 REST URL 的形式提供相同的下一页链接,方便你手动复现 Agent 的调用。
获取帖子的评论
hasdata_instagram_comments_getInstagramComments
获取一条帖子或短视频下的评论串,以及帖子本身。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | 字符串 | 是 | /p/、/reel/ 或 /tv/ 链接,可包含或省略用户名路径段 |
nextPageToken | 字符串 | 上一响应中的令牌 | |
includeMusic | 布尔值 | 同时在 post.music 中返回短视频的声音,包括授权曲目和原创音频 |
当评论串本身就是关注重点时,请使用此接口。post 对象会重复返回动态中已有的互动数据,因此,按热度排序或按日期筛选动态无需调用此接口;为收集动态中已有的数据而针对每条帖子单独发起一次请求则纯属浪费。
返回 post、comments 和 pagination。每条评论包含 id、text、timestamp、likesCount,以及包含 id、username 和 profilePicUrl 的 owner。pagination 会在 nextPageToken 旁报告 moreCommentsAvailable,因此遍历时无需额外发起请求来确认是否已到末尾。
{
"post": {
"shortcode": "DdHyaYAifb6",
"type": "Carousel",
"productType": "carousel_container",
"ownerUsername": "nasa",
"timestamp": "2026-09-10T21:20:24.000Z",
"likesCount": 120648,
"commentsCount": 1020
},
"comments": [
{
"id": "18188486875408374",
"text": "I like to become a astronomer",
"timestamp": "2026-10-05T07:38:17.000Z",
"likesCount": 0,
"owner": { "id": "40744210101", "username": "nisha_karippolil" }
}
],
"pagination": { "moreCommentsAvailable": true, "nextPageToken": "…" }
}
提示词和资源
该服务提供一个提示词,即现成的工作流,客户端可直接提供给用户,而无需让用户自行编写工具调用。
| 提示词 | 功能 |
|---|---|
instagram_profile | 查找公开的 Instagram 个人资料。 |
无需 API 密钥即可获取提示词列表,因此用户注册前,客户端就可以读取该列表。
错误和失败路径
你的客户端几乎不会从工具调用中看到 HTTP 错误代码。MCP 层会返回 200,并将失败信息放在结果中,同时将 isError 设为 true,并以文本形式说明原因。Agent 看到的是一条消息,而不是你可能预期的状态行。
密钥错误会作为工具输出显示,而不是连接失败。 列出工具时可以使用任何非空密钥,客户端会完成握手并显示绿色状态。随后首次调用工具时会返回 isError: true,文本为 HasData API error: 401 Unauthorized。请留意这段字符串,因为流程中此前不会报告问题。
缺少密钥是唯一真正的 HTTP 错误。 授权会在调用任何工具前执行,连接本身会以 401 失败。
不符合架构的参数会在成为请求之前被拒绝。 服务会返回 isError: true,文本为 MCP error -32602: Input validation error,并指出字段名称。不会获取任何数据,也不会产生费用。
无法解析的句柄会返回明确错误,而不是空数据。 它会返回 isError: true,并附带 HasData API error: 400 Bad Request,同时将 requestMetadata.status 设为 error。这是理想情况,因为失败原因一目了然。请检查该标志,而不是数组长度。
数据不公开的账号不会返回帖子动态。 这些工具适用于公开账号,而非公开账号没有可读取的内容。请将缺少 latestPosts 视为超出范围,而不是动态为空。
包含数据的结果还会附带一个值得在联系支持时引用的 requestMetadata.id,以及指向该次调用所存储内容的 html 和 json 链接。
定价、免费套餐和限制
每次成功调用 Instagram 工具的费用为 10 个积分。响应大小不会改变价格。包含十二篇帖子的个人资料,与没有帖子的个人资料价格相同。
免费套餐每月提供 1,000 个积分,无需绑定银行卡,即 100 次 Instagram 调用。积分会随计费周期续期,因此低调用量的 Agent 可以无限期使用免费套餐。
付费套餐起价为 每月 $59,包含 200,000 个积分,即 20,000 次调用。用量越大,单价越低:入门套餐为 每 1,000 次调用 $2.95,Basic 套餐为 $1.19,Growth 套餐各档为 $0.83。最新价格请查看定价页面。
套餐还决定并发限制。免费套餐允许同时发起 1 个请求,Startup 为 5 个,Basic 为 15 个,Growth 各档为 50 到 500 个。对于任何无人值守的任务,请妥善处理超出限制的情况,因为 Agent 并行处理多个句柄时,会比你更早触及上限。
每次翻页都会产生一次调用。遍历两个账号的 100 篇帖子需要 18 次调用,共 180 个积分。与深入抓取动态相比,免费套餐更适合比较个人资料。
工具选择
?apis=instagram 会准确提供这两个工具。该参数接受列表,而 ?apis=instagram,tiktok,youtube 可一次向 Agent 提供三个社交平台。省略该参数则会提供 HasData 当前支持的全部 57 个工具。
通常,精简列表是更好的默认选择。模型在两个工具中选择时,比在 57 个工具中更容易选对;而且工具描述本身在每轮对话中都会占用上下文。
跨平台比较通常是扩大列表的原因。在同时提供 Instagram 句柄和 TikTok 句柄后,只需一次提示词,就能对二者提出相同的问题。
对比
几乎所有 Instagram MCP 服务做的事情都与这个服务不同,因此选择起来格外明了。
热门服务会操作账号。有些服务封装 Instagram Graph API,用于发布帖子、读取评论和管理你负责的账号。另一些则处理私信。根据它们各自的设置说明,互动分析服务会要求你在环境变量块中填写 INSTAGRAM_USERNAME 和 INSTAGRAM_PASSWORD,因为它们会以你的身份登录并浏览。只要你要运行自己控制的账号,这些服务都是合适的工具。
这个服务不会以任何人的身份登录,它解决的是另一类问题。它回答的每个问题都针对你不拥有的账号,而且无论账号是谁,调用方式都一样。
| 账号操作型服务 | 这个服务 | |
|---|---|---|
| 它以什么身份操作 | 通过令牌或会话操作你的账号 | 不以任何身份操作,只读取公开数据 |
| 你需要配置什么 | 每个账号的凭据或 Graph API 应用 | 一次配置一个 API 密钥 |
| 支持哪些账号 | 你负责管理的账号 | 任意公开账号 |
| 发布和发消息 | 是,这正是它的用途 | 不提供 |
| 输出 | 仅限你运行的账号 | 任意公开账号的 JSON,并解析主题标签和提及 |
| 你需要运行什么 | 本地运行的 Python 或 Node 进程 | 一个 URL 和一个标头 |
| 费用 | 免费 | 每次调用 10 个点数 |
两项就足以决定选择。如果你需要发帖、评论或回复,这个服务完全帮不上忙。如果你需要从一百个与你毫无关联的账号获取相同字段,那么围绕你自己的凭据构建的服务也帮不上忙。
决定性因素是适用范围,而非精致程度。围绕你自己的登录信息构建的服务只能访问你负责管理的账号,不管它的输出有多好。这个服务则能针对任意公开账号回答相同问题,而且返回的字段是已解析的数组,汇总起来不花任何费用。
这个服务不做什么。 不提供评论、快拍、动态中未显示的 Reels、私信、主题标签或位置搜索,也不提供任何写入功能。它擅长读取两类数据。
常见问题
什么是 Instagram MCP 服务?
它是一种将 Instagram 数据作为工具提供给 AI 客户端调用的服务。客户端通过 Model Context Protocol 发送工具调用,服务获取数据并返回结构化 JSON,模型处理结果,无需查看 HTML 页面。这个服务提供两个只读工具,并且在远程运行。客户端连接到一个 URL,无需启动本地进程。
有官方的 Instagram MCP 服务吗?
Meta 没有发布通用的 Instagram MCP 服务。Meta 有一个官方 MCP 服务用于 Meta 广告,涵盖的是广告账号和广告系列,而非个人资料和帖子数据。这个领域的其他服务都由第三方构建。
数据范围包括什么?
按账号名称提供公开账号的公开个人资料字段和公开帖子流。对于私密账号,仍会返回账号标题、粉丝数和关注数,以及 private: true 标志,但不会返回个人简介和帖子,因为没有公开的帖子流可供读取。你有责任妥善使用结果,包括遵守 Instagram 条款及适用于你的法律。
我需要托管或运行任何内容吗?
不需要。这是一个基于可流式传输 HTTP 的远程 MCP 服务。无需安装任何内容,无需 Python 环境,也无需重启进程。
数据是实时的还是缓存的?
实时数据。每次调用都会在请求时获取数据,并带有自己的 requestMetadata.id。两次相同的调用会分别获取数据,而不是重放已存储的副本。粉丝数和点赞数等计数会随账号变化而变化。
我最多能获取多少条帖子?
每次调用可获取 12 条帖子,即一页 Instagram 内容;后续页面通过 pagination.nextPageToken 获取。对于公开账号,个人资料查询会免费包含相同的 12 条帖子,因此简短的帖子流查询通常完全无需调用帖子工具。
Instagram 更改标记后会发生什么?
你这边什么都不用做。我们会跟踪变化,并保持响应架构稳定;字段名称和类型也会保持不变。没有值的字段不会出现在条目中,而不是以 null 值出现,因此读取可选字段时应提供默认值。
可以用一个服务连接多个平台吗?
可以。apis 参数接受一个列表,使用 ?apis=instagram,tiktok,youtube 即可让你的 Agent 同时连接三个平台。
哪些客户端可用?
任何支持带自定义请求头的流式 HTTP 的 MCP 客户端都可以。上方的配置均经过测试。支持 OAuth 的客户端也可以改为将该 URL 添加为连接器。
HasData 链接
| 产品页面和请求构建器 | Instagram 个人资料 API 和 Instagram 帖子 API |
| 服务文档 | MCP 服务文档 |
| 一个服务中的全部 57 个工具 | HasData/hasdata-mcp |
| 客户端使用指南 | MCP 客户端和集成 |
| 我们解析的其他平台 | 另外 53 个抓取 API |
| 套餐和积分费用 | 套餐和积分费用 |
| 密钥和用量 | HasData 控制台 |
| npm 上的 Node 启动器 | @hasdata/instagram-mcp |
| PyPI 上的 Python 启动器 | hasdata-instagram-mcp |
开发
此仓库包含远程服务的配置和文档,无需构建,也无需容器化。
仓库中还包含一项契约测试。README 承诺提供两个具有特定参数的工具,而上游工具列表可能在没有任何提交的情况下发生变化,导致此文件悄悄提供错误信息。该测试会验证这项承诺,并在 CI 中每周运行,也会在每次推送时运行。
HASDATA_API_KEY=your_key_here npm test
在 PowerShell 中:
$env:HASDATA_API_KEY = "your_key_here"; npm test
最后一项检查会进行真实调用并消耗 10 个积分,这是为一项可能因合理原因失败的金丝雀测试付出的代价。只要密钥非空,列出工具就能成功;如果测试只列出工具,即使密钥已被撤销,也会通过。
贡献
修正工具表格和响应示例是最有价值的贡献,因为这些内容最容易过时。请附上你发出的调用和收到的响应。来自 fork 的拉取请求会在不使用密钥的情况下运行测试套件,在线检查则会跳过,不会变红。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。