媒体工具包MCP服务器
概述
媒体工具包MCP服务器 是一种旨在解析和分析广告和营销行业常用的Media Kit PDF文件的服务。它从PDF文件中提取关键信息,将其转换为Markdown,并利用AI(DeepSeek API)进行全面的内容分析,包括受众人口统计、定价和营销见解。该服务器被构建为MCP(模型上下文协议)主机的插件,同时支持stdio和HTTP API模式。
______________________________________________________________________
特性
- PDF到Markdown转换:自动提取本地PDF文件并将其转换为Markdown文本。
- 基于AI的内容分析:使用DeepSeek API分析媒体工具包内容,提供结构化见解(受众、包、覆盖范围等)。
- MCP协议支持:实现MCP服务器协议,以便通过stdio与MCP主机轻松集成。
- 可选RESTful API:提供用于前端或第三方集成的HTTP API。
- TypeScript和类型安全:用TypeScript编写,具有清晰的可维护性类型定义。
- 测试:包括集成和API可靠性测试。
- 简单的Web UI:(可选)用于本地测试HTTP API的基本HTML页面。
______________________________________________________________________
目录结构
media_kit_mcp_server/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── server.ts # MCP server logic and tool registration
│ ├── nodeServer.ts # Optional HTTP API server
│ ├── mcpClient.ts # MCP client for local API calls
│ ├── helper/
│ │ ├── markdownify.ts # PDF-to-Markdown utility
│ │ └── deepseek.ts # DeepSeek AI analysis utility
│ ├── type/
│ │ ├── common.ts # Common type definitions
│ │ └── mediaKit.ts # Media Kit structure types
│ ├── test/
│ │ ├── comprehensive.test.ts # Integration test
│ │ └── deepseek.test.ts # DeepSeek API test
│ └── index.html # Simple web UI for HTTP API
├── package.json
├── tsconfig.json
└── README.md______________________________________________________________________
入门指南
1.安装依赖项
npm install2.建设项目
npm run build3.作为MCP服务器运行(推荐)
将此项目作为MCP插件集成到MCP HOST配置中:
{
"mcpServers": {
"media-kit-mcp": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"DEEP_SEEK_API_KEY": "YOUR_DEEP_SEEK_API_KEY"
},
"transport": "stdio",
"enabled": true,
"description": "Parse and analyze Media Kit PDF files for advertising and marketing use cases"
}
}
}4.作为HTTP API运行(可选)
要使用HTTP API(用于前端或第三方集成):
npm run build
node dist/nodeServer.js服务器将侦听端口 3000 默认情况下。您可以使用附带的进行测试 src/index.html 页面或通过API调用。
______________________________________________________________________
MCP工具
将pdf解析为markdown
- 描述:将本地PDF文件(文件://)转换为Markdown文本。
- 参数架构:
{
"pdfUrl": "file:///absolute/path/to/file.pdf"
}- 返回架构:
{
"content": [
{
"type": "text",
"text": "Extracted markdown content..."
}
],
"error": "Error message if any error occurred."
}分析媒体工具包
- 描述:分析媒体工具包Markdown内容并返回结构化见解(受众、定价等)
- 参数架构:
{
"markdown": "# Media Kit\n..."
}- 返回架构:
{
"content": [
{
"type": "text",
"text": "{ \"basicInfo\": { ... }, \"analysis\": { ... } }"
}
],
"error": "Error message if any error occurred."
}______________________________________________________________________
HTTP API参考
- POST/分析
- 身体: { pdfUrl: "file:///absolute/path/to/file.pdf" } - 响应:JSON分析结果
______________________________________________________________________
依赖项
- Node.js 18+
- TypeScript
- @模型上下文协议/sdk
- DeepSeek API (要求
DEEP_SEEK_API_KEY环境变量) - markitdown(对于PDF到Markdown,需要本地Python虚拟环境和markitdown工具)
______________________________________________________________________
开发与测试
运行测试
# Integration test
ts-node src/test/comprehensive.test.ts
# DeepSeek API test
ts-node src/test/deepseek.test.ts编码结构
src/helper/markdownify.ts:调用本地markitdown工具将PDF转换为Markdown。src/helper/deepseek.ts:包装DeepSeek API以进行内容分析。src/server.ts:注册MCP工具并处理请求。src/nodeServer.ts:为外部集成提供HTTP API。src/index.html:用于HTTP API本地测试的简单web UI。
______________________________________________________________________
常见问题
- 找不到markitdown?
- 确保你有一个安装了markitdown的Python虚拟环境 .venv/bin/markitdown 在项目根目录的父目录中。
- DeepSeek API密钥丢失?
- 设置 DEEP_SEEK_API_KEY 运行服务器之前的环境变量。
______________________________________________________________________
许可证
该项目根据 国际协调委员会 许可证。
______________________________________________________________________
贡献
欢迎投稿、问题和功能请求!请打开问题或提交拉取请求。
