PDF解析分析服务

Media Kit MCP Server 是一款用于解析和分析广告营销行业PDF文件的服务,支持将PDF转换为Markdown格式,并利用AI进行内容分析,包括受众统计、定价和营销洞察。

  • by hanqizheng
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 hanqizheng/media_kit_mcp_server

使用说明

媒体工具包MCP服务器

经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 install

2.建设项目

npm run build

3.作为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 运行服务器之前的环境变量。

许可证

该项目根据 国际协调委员会 许可证。


贡献

欢迎投稿、问题和功能请求!请打开问题或提交拉取请求。