TikTok API文档MCP服务器
一个MCP(模型上下文协议)服务器,使用OpenAI的向量存储为TikTok API文档提供语义搜索和检索。兼容ChatGPT连接器、深入研究和API集成。
🎯 目的
该服务器使人工智能模型能够通过模型上下文协议搜索和检索TikTok API文档。它旨在与以下设备配合使用:
- ChatGPT连接器,增强聊天功能
- 深度研究模型(o4迷你深度研究)
- 任何兼容MCP的客户端
✨ 特性
- 语义搜索:使用自然语言查询搜索TikTok API文档
- 文献检索:按ID获取完整文档内容
- 矢量存储集成:由OpenAI的矢量存储提供支持,用于精确的语义搜索
- 双重运输支持:通过stdio(本地)或SSE/HTTP(远程)运行
- ChatGPT 兼容:实现所需
search和fetchChatGPT集成工具
📋 先决条件
- OpenAI API密钥:矢量存储操作所需
- Bun运行时:此项目使用Bun以获得最佳性能
- TikTok文档:在安装过程中自动下载
🚀 快速开始
1.安装依赖项
bun install2.设置OpenAI API密钥
export OPENAI_API_KEY=sk-your-api-key-here3.使用TikTok Docs初始化矢量存储
# This downloads TikTok docs and uploads them to OpenAI vector store
bun run src/scripts/tikTokDocsToVectorStore.ts这将:
- 下载所有TikTok API文档(约200多个文件)
- 创建一个名为“TikTok API文档”的OpenAI矢量存储
- 上传并索引所有文档
- 将配置保存到
tiktok-docs/vector-store-config.json
4.启动MCP服务器
对于HTTP/SSE模式(ChatGPT和远程访问):
bun run start:http对于stdio模式(本地MCP客户端):
bun run start🛠️ 可用工具
search
搜索TikTok API文档以获取相关信息。
参数:
query(string):搜索查询
退货:
{
"results": [
{
"id": "file_123",
"title": "Campaign Management",
"text": "Relevant snippet...",
"url": "https://platform.tiktok.com/docs/campaign-management"
}
]
}fetch
检索文档文件的完整内容。
参数:
id(string):搜索结果中的文件ID
退货:
{
"id": "file_123",
"title": "Campaign Management",
"text": "Full document content...",
"url": "https://platform.tiktok.com/docs/campaign-management",
"metadata": {...}
}vector_store_status
检查矢量存储配置状态。
退货:
{
"configured": true,
"store_id": "vs_abc123",
"message": "Vector store is configured and ready"
}🔗 与ChatGPT集成
通过ChatGPT连接器
- 转到ChatGPT设置→ 连接器
- 添加新的MCP服务器:
- 网址: https://your-server-url/sse/ - 工具: search, fetch - 批准:设置为“从不”进行深入研究
通过OpenAI API
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "o4-mini-deep-research",
"input": [{
"role": "user",
"content": [{
"type": "input_text",
"text": "How do I create a TikTok ad campaign?"
}]
}],
"tools": [{
"type": "mcp",
"server_label": "tiktok-docs",
"server_url": "http://localhost:3001/sse/",
"allowed_tools": ["search", "fetch"],
"require_approval": "never"
}]
}'📁 项目结构
├── src/
│ ├── core/
│ │ ├── services/
│ │ │ ├── vector-store-service.ts # OpenAI vector store operations
│ │ │ └── greeting-service.ts # Legacy example service
│ │ ├── tools.ts # MCP tool definitions
│ │ ├── resources.ts # MCP resources
│ │ └── prompts.ts # MCP prompts
│ ├── scripts/
│ │ ├── tikTokDocsToVectorStore.ts # Setup script for vector store
│ │ └── getTikTokDocsMd.ts # TikTok docs downloader
│ ├── server/
│ │ ├── http-server.ts # SSE/HTTP server
│ │ └── server.ts # Core server setup
│ └── index.ts # stdio server entry
├── tiktok-docs/ # Downloaded documentation (gitignored)
│ └── vector-store-config.json # Vector store configuration
├── MCP_SERVER_README.md # Detailed MCP server documentation
└── README.md # This file🧪 测试
测试服务器
# Run the test script
node test-mcp-server.js手动测试
搜索文档:
curl -X POST http://localhost:3001/sse/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search",
"arguments": {"query": "campaign creation"}
}
}'📝 脚本
矢量存储管理
# Download docs and sync to vector store
bun run src/scripts/tikTokDocsToVectorStore.ts
# Search the vector store
bun run src/scripts/tikTokDocsToVectorStore.ts --search "your query"服务器命令
# Production
bun run start # stdio mode
bun run start:http # HTTP/SSE mode
# Development (with auto-reload)
bun run dev # stdio mode
bun run dev:http # HTTP/SSE mode
# Build
bun run build # Build stdio server
bun run build:http # Build HTTP server🔧 配置
环境变量
OPENAI_API_KEY=sk-... # Required: OpenAI API key
PORT=3001 # HTTP server port (default: 3001)矢量存储配置
运行安装脚本后,配置将保存到:
{
"vectorStoreId": "vs_abc123",
"vectorStoreName": "TikTok API Documentation",
"lastSync": "2024-01-01T00:00:00Z",
"filesCount": 200
}🚢 部署
使用PM2
# Install PM2
npm install -g pm2
# Start the server
pm2 start bun --name "tiktok-mcp" -- run start:http
# Save PM2 configuration
pm2 save
pm2 startup使用Docker
FROM oven/bun:latest
WORKDIR /app
COPY package.json bun.lockb ./
RUN bun install
COPY . .
ENV PORT=3001
EXPOSE 3001
CMD ["bun", "run", "start:http"]🔒 安全考虑
- API密钥:从不将API密钥提交到版本控制
- 超文本传输安全协议:在生产环境中使用HTTPS
- 认证:为公共部署实施身份验证
- 速率限制:考虑对API端点实施速率限制
- CORS:为您的用例配置适当的CORS标头
📚 文档
- MCP服务器文档 -详细的MCP实施指南
- 模型上下文协议 -MCP官方文件
- FastMCP框架 -框架文件
- OpenAI矢量存储 -矢量存储API指南
🤝 贡献
欢迎投稿!请随时提交拉取请求。
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 内置于 FastMCP
- 由...驱动 OpenAI矢量存储
- 来自的TikTok API文档 TikTok商业版
