组件转换服务器

MCP组件服务器是一个基于FastMCP服务器的实现,将AppBuilder组件转换为FastMCP工具,实现百度云AI服务与MCP兼容环境的无缝集成。

  • by baidubce
  • Python
  • 本地部署
  • 587 星标
  • 更新于
在 GitHub 查看 baidubce/app-builder

使用说明

MCP组件服务器

MCP组件服务器是一个基于FastMCP服务器的实现,它将AppBuilder组件转换为FastMCP工具,使百度云AI服务能够无缝集成到MCP兼容环境中。

概述

这 MCPComponentServer 类在AppBuilder组件和FastMCP工具之间提供了一个桥梁,允许您:

  • 将AppBuilder组件转换为MCP兼容工具
  • 处理各种内容类型(文本、图像、音频、参考文献)
  • 管理不同受众的可见性范围
  • 支持通过生成器进行流式响应

特性

  • AppBuilder组件自动转换为MCP工具
  • 支持多种内容类型:
    • 文本内容
    • 图像内容
    • 音频内容
    • 参考内容
  • 可配置的主机和端口设置
  • 内置错误处理和日志记录
  • 支持自定义工具注册
  • 媒体内容的自动MIME类型检测

用法

基本设置

from appbuilder import GeneralOCR, TextGeneration
from mcp.server import MCPComponentServer

# Create server instance
server = MCPComponentServer("AI Service", host="localhost", port=8000)

# Add AppBuilder components
ocr = GeneralOCR()
server.add_component(ocr)

text_gen = TextGeneration()
server.add_component(text_gen)

# Run the server
server.run()

添加自定义工具

@server.tool()
def custom_function(param1: str, param2: int) -> str:
    """Custom tool description"""
    return f"Processed: {param1} {param2}"

添加资源

@server.resource()
def get_resource():
    """Resource description"""
    return {"data": "resource content"}

内容类型处理

服务器自动处理各种内容类型:

  1. 文本内容:将文本输出转换为MCP文本内容
  2. 图像内容:处理base64和基于URL的图像
  3. 音频内容:使用自动MIME类型检测处理音频文件
  4. 参考内容:管理文档参考和引用

配置

服务器可以配置各种参数:

server = MCPComponentServer(
    name="Service Name",
    host="localhost",  # Default: "localhost"
    port=8000,        # Default: 8000
    **kwargs          # Additional FastMCP arguments
)