统一文档访问与转换网关

EDGlobal Central MCP Gateway是一个统一访问SharePoint文档并提供文件转换功能的网关服务,适用于企业文档管理和自动化处理场景。

  • by DeepeshkumarApparSenthilkumar
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 DeepeshkumarApparSenthilkumar/edglobal-workspace-edglobal-central-mcp-gateway

使用说明

EDGlobal中央MCP网关

EDGlobal存储库的中央MCP(模型上下文协议)网关,提供对SharePoint文档的统一访问和文件转换功能。

概述

此网关协调在共享Docker网络上运行的多个MCP服务器(edglobal-mcp-network),使Claude Code和其他MCP客户端能够访问:

  • SharePoint文档 -通过Microsoft Graph API对SharePoint的读/写访问
  • 文件转换器 -将文档转换为机器可读格式(PDF、Word、Excel、带OCR的图像)

快速开始

先决条件

  • Docker和Docker Compose
  • Azure AD应用程序注册(用于SharePoint访问)
  • 您要访问的SharePoint网站URL

设置

  1. 克隆和配置:

    cd docker
    cp .env.example .env
    # Edit .env with your Azure AD and SharePoint configuration
    
  2. 运行安装脚本:

    ./setup.sh
    
  3. 配置Claude代码 -添加到您的 .claude/settings.json:

    {
      "mcpServers": {
        "edglobal-mcp-gateway": {
          "command": "docker",
          "args": [
            "run", "--rm", "-i",
            "--network", "edglobal-mcp-network",
            "edglobal-mcp-gateway:latest"
          ]
        }
      }
    }
    

建筑

┌─────────────────────────────────────────────────────────────┐
│                   Claude Code / MCP Client                   │
└─────────────────────────────┬───────────────────────────────┘
                              │ stdio
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    edglobal-mcp-gateway                      │
│                   (Tool Discovery & Routing)                 │
└──────────────┬─────────────────────────────┬────────────────┘
               │                             │
    ┌──────────▼──────────┐       ┌─────────▼──────────┐
    │  ms-graph-sharepoint │       │  file-transformers  │
    │   (Node.js/TS)       │       │   (Python)          │
    └──────────────────────┘       └─────────────────────┘
               │
               ▼
    ┌──────────────────────┐
    │   Microsoft Graph    │
    │   (SharePoint API)   │
    └──────────────────────┘

可用工具

SharePoint工具

工具 说明
list_sites 列出具有访问级别的已配置SharePoint网站
list_libraries 列出网站中的文档库
list_files 列出库中的文件/文件夹
read_file 从源站点读取文件内容
search_files 跨已配置的源站点搜索
upload_file 将文件上传到输出站点(如果已配置)
create_folder 在输出站点中创建文件夹(如果已配置)

文件转换器工具

工具 说明
transform_file 将文件转换为机器可读格式
transform_batch 一次转换多个文件
check_tools 检查可用的转换工具
list_formats 列出支持的文件格式

配置

环境变量

变量 必填 描述
AZURE_TENANT_ID 是 Azure AD租户ID
AZURE_CLIENT_ID 是 Azure AD应用程序ID
AZURE_CLIENT_SECRET 是 Azure AD客户端机密
TOKEN_ENCRYPTION_KEY 是 64个十六进制字符用于AES-256加密
SHAREPOINT_SOURCE_SITES 是 逗号分隔的SharePoint URL(只读)
SHAREPOINT_OUTPUT_SITE 否 单个SharePoint URL(读写)
RATE_LIMIT_RPM 否 每分钟请求数(默认值:60)
LOG_LEVEL 否 日志级别:调试、信息、警告、错误

Azure AD安装程序

  1. 在Azure门户中创建应用程序注册
  2. 注意应用程序(客户端)ID和目录(租户)ID
  3. 创建客户端密钥
  4. 授予API权限:
    • Sites.Read.All -用于阅读SharePoint网站
    • Sites.ReadWrite.All -如果使用输出站点进行上传
  5. 授予管理员权限同意

生成加密密钥

openssl rand -hex 32

安全

  • 令牌加密:静态OAuth令牌的AES-256-GCM加密
  • OAuth 2.0:客户端凭据通过SOAP流动
  • 网站许可列表:仅可访问已配置的站点
  • 输入验证:Zod(TypeScript)和Pydantic(Python)模式
  • 速率限制:每个操作速率限制
  • 审计日志:带有敏感数据编辑的结构化日志
  • 集装箱安全:所有容器中的非root用户

发展

构建个性化服务

# MS Graph SharePoint Server
docker build -t ms-graph-sharepoint-mcp:latest servers/ms-graph-sharepoint/

# File Transformers Server
docker build -t file-transformers-mcp:latest servers/file-transformers/

# Gateway
docker build -t edglobal-mcp-gateway:latest docker/

运行服务

cd docker
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

项目结构

edglobal-central-mcp-gateway/
├── docker/
│   ├── Dockerfile              # Gateway image
│   ├── gateway.js              # Gateway orchestrator
│   ├── docker-compose.yaml     # All services
│   ├── .env.example            # Configuration template
│   └── setup.sh                # Setup script
├── servers/
│   ├── ms-graph-sharepoint/    # SharePoint MCP server
│   │   ├── Dockerfile
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   └── src/
│   └── file-transformers/      # Transformers MCP server
│       ├── Dockerfile
│       ├── requirements.txt
│       └── src/
├── catalog/
│   ├── catalog.yaml            # Server registry
│   └── README.md               # Catalog documentation
├── config/
│   └── claude-mcp-config.json  # Consumer repo template
├── CLAUDE.md                   # Claude Code instructions
└── README.md                   # This file

故障排除

常见问题

找不到Docker网络:

docker network create edglobal-mcp-network

身份验证失败:

  • 在中验证Azure AD凭据 .env
  • 确保对API权限授予管理员同意
  • 检查令牌加密密钥是否为64个十六进制字符

SharePoint访问被拒绝:

  • 验证网站URL是否正确且可访问
  • 确保应用程序具有网站。读。所有权限
  • 检查网站是否在列表中

转换失败:

  • 使用 check_tools 验证可用的转换工具
  • 检查文件大小是否在限制范围内
  • 确保支持源格式

查看日志

# All services
docker-compose logs -f

# Specific service
docker-compose logs -f ms-graph-mcp
docker-compose logs -f file-transformers-mcp

许可证

版权所有©EDGlobal。保留所有权利。