一个统一的模型上下文协议(MCP)服务器,通过Graph API提供全面的Instagram和Facebook数据分析。构建时考虑了可扩展性,以便将来轻松添加更多社交平台。
/me端点以确认范围和有效性/me端点以确认范围和有效性在使用此MCP服务器之前,您需要:
instagram_basicinstagram_manage_insightspages_read_engagementpages_show_listread_insightspages_read_engagementdebug_token,则需要应用访问令牌instagram_basicinstagram_manage_insightspages_read_engagementpages_show_list短期令牌在一小时内过期。转换为长期令牌(有效期60天):
curl -X GET "https://graph.facebook.com/v18.0/oauth/access_token?grant_type=fb_exchange_token&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&fb_exchange_token=YOUR_SHORT_LIVED_TOKEN"
更多详情,请参阅Instagram平台文档。
git clone <repository-url>
cd mcp-instagram-analytics
npm install
在根目录创建一个.env文件:
cp .env.example .env
编辑.env并添加您的凭据:
INSTAGRAM_ACCESS_TOKEN=your_access_token_here
INSTAGRAM_ACCOUNT_ID=your_account_id_here # 可选 - 将自动检测
npm run build
npm start
或者为了开发并自动重建:
npm run dev
将此服务器添加到您的MCP客户端配置中。例如,在Claude Desktop的配置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"instagram-analytics": {
"command": "node",
"args": ["/绝对路径/to/mcp-instagram-analytics/dist/index.js"],
"env": {
"INSTAGRAM_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}
list_available_accounts列出所有连接到您的Facebook页面的Instagram商业账户。当您有多个账户时,可以使用此工具查看哪些账户可用。
参数:无
示例响应:
[
{
"id": "123456789",
"username": "my_business_account",
"name": "My Business",
"pageId": "987654321",
"pageName": "My Facebook Page"
},
{
1. "id": "987654321",
2. "username": "my_other_account",
3. "name": "My Other Business",
4. "pageId": "123456789",
5. "pageName": "Another Page"
6. }
]
使用场景:如果您有多个Instagram账户,首先运行此工具查看所有可用账户及其ID。然后设置INSTAGRAM_ACCOUNT_ID环境变量为您想要使用的账户ID。
get_user_profile获取Instagram商业账户的个人资料信息。
参数:无
示例响应:
{
"id": "123456789",
"username": "your_username",
"name": "Your Name",
"followers_count": 1500,
"follows_count": 300,
"media_count": 50,
"biography": "Your bio",
"website": "https://yourwebsite.com"
}
get_account_insights获取账户级别的洞察和分析。
参数:
metrics(必需):要检索的指标数组
impressions、reach、profile_views、follower_count、email_contacts、phone_call_clicks、text_message_clicks、get_directions_clicks、website_clicksperiod(必需):时间周期(day、week、days_28)since(可选):开始日期的Unix时间戳until(可选):结束日期的Unix时间戳示例:
{
"metrics": ["impressions", "reach", "profile_views"],
"period": "day"
}
list_media获取最近的媒体帖子列表。
参数:
limit(可选):要检索的项目数量(默认:25,最大:100)示例响应:
[
{
"id": "media_id_123",
"caption": "查看这个帖子!",
"media_type": "IMAGE",
"media_url": "https://...",
"permalink": "https://instagram.com/p/...",
"timestamp": "2024-01-15T10:30:00+0000",
"like_count": 150,
"comments_count": 25
}
]
get_media_insights获取特定媒体帖子的洞察。
参数:
media_id(必需):媒体项目的IDmetrics(必需):指标数组
engagement、impressions、reach、saved、video_views、likes、comments、shares示例:
{
"media_id": "media_id_123",
"metrics": ["engagement", "impressions", "reach", "saved"]
}
get_media_details获取特定媒体帖子的详细信息。
参数:
media_id(必需):媒体项目的IDlist_media获取您的近期帖子get_media_insights进行性能分析get_account_insights与follower_count指标在days_28周期内profile_views和reach以了解可见性website_clicks以衡量流量生成get_media_insights识别顶级表现的帖子engagement和saved指标video_views)仅适用于视频帖子Instagram Graph API有速率限制:
根据需要规划使用情况并实施缓存。
mcp-instagram-analytics/
├── src/
│ ├── index.ts # MCP服务器实现
│ ├── instagram-client.ts # Instagram API客户端
│ └── types.ts # TypeScript类型定义
├── dist/ # 编译的JavaScript(生成)
├── .env # 环境变量(创建此文件)
├── .env.example # 环境变量模板
├── package.json # 依赖项和脚本
├── tsconfig.json # TypeScript配置
└── README.md # 此文件
npm run build
npm run watch
欢迎贡献!请随意提交Pull Request。
MIT许可 - 您可以在自己的项目中自由使用!
对于问题和疑问:
注意:这是一个非官方工具,与Meta、Facebook或Instagram无关。