项目简介
Metorial是一个为AI代理开发者设计的开源平台,旨在简化AI模型与外部服务(如SaaS应用、数据库、API等)的集成。它基于Model Context Protocol (MCP) 构建,提供标准化的方式来访问资源、调用工具和管理会话,赋能开发者构建更强大、更具上下文感知能力的AI应用。
主要功能点
- 丰富的MCP服务器集合: Metorial仓库中包含大量预构建的MCP服务器,用于集成Loops、Exa、Google Sheets、Discord、Dropbox、Resend、Google Drive、Hacker News、Hubspot、Tavily、Brave Search等多种主流服务,开箱即用。
- 标准化资源访问: 以统一的URI格式 (例如 'loops://contact/{identifier}') 访问各种外部服务中的数据资源,实现数据的高效检索和管理。
- 智能工具调用: 允许AI模型通过标准化接口调用外部服务提供的特定功能,如创建联系人、发送邮件、搜索网页、管理文件等,将AI能力扩展到实际操作。
- 简便的OAuth认证管理: 提供内置的OAuth流程支持,简化与需要用户授权的服务(如Google Calendar, Slack)的集成,确保安全和便捷的会话管理。
- 广泛的AI模型兼容性: 支持OpenAI, Anthropic, Google, DeepSeek, Mistral, XAI等多种主流AI模型提供商,使您可以在不同的AI后端之间无缝切换。
- 灵活的自托管能力: 平台代码完全开源,您可以在自己的服务器或云基础设施上部署和运行Metorial实例,拥有完全的控制权。
- 为开发者量身打造: 提供简洁易用的SDK(JavaScript/TypeScript和Python)、详细的API文档、全面的会话监控和调试工具,帮助开发者快速构建、部署和管理AI集成应用。
安装步骤
Metorial平台及其内部的MCP服务器通常以Docker容器的形式部署,以简化环境配置。您需要确保系统已安装Docker和Docker Compose。
- 克隆Metorial仓库:
打开您的终端或命令行工具,执行以下命令克隆Metorial的代码仓库:
git clone https://github.com/metorial/metorial.git cd metorial - 构建并启动Docker容器:
在 'metorial' 项目的根目录下,运行以下命令来构建所有必要的Docker镜像并以后台模式启动Metorial平台及其所有集成的MCP服务器:
此命令将启动Metorial平台后端、前端仪表盘以及所有配置好的MCP服务器。docker compose up --build -d - 访问Metorial仪表盘: 平台启动后,您通常可以通过网络浏览器访问 'http://localhost:3000'(如果未修改默认端口)来打开Metorial的Web仪表盘。您可以在仪表盘中进一步配置、管理和监控您的AI集成。
服务器配置 (概念性示例)
Metorial是一个高级集成平台,它管理并运行其内部的MCP服务器。当您使用Metorial提供的SDK时,通常不需要直接处理底层MCP服务器的启动命令和参数。您只需指定Metorial平台中部署的服务器名称。
然而,如果您是MCP客户端的开发者,并且需要了解MCP服务器的通用配置方式,或者希望绕过Metorial平台直接运行一个MCP服务器,其配置信息(以JSON格式)可能包含以下关键要素:
{ "server_name": "loops-mcp-server", "description": "连接 Loops 邮件营销平台,提供创建/更新/查找/删除联系人、管理邮件列表和发送事件等工具和资源。", "command": "用于启动 Loops MCP 服务器的可执行命令,例如 'bun run' 或 'node'。", "args": [ "启动命令的脚本或入口文件路径,例如 './servers/loops/server.ts' (在Bun环境下)。", "传递给服务器的配置参数,例如 '--config', '{\"token\":\"您的_LOOPS_API_密钥\"}',用于提供必要的API凭证。" ], "configuration_notes": "请注意,当您通过Metorial平台及其SDK使用这些MCP服务器时,您通常不需要直接配置上述底层命令和参数。您只需在Metorial平台中部署相应的服务器(如 'loops-server-deployment'),然后在您的AI应用代码中通过平台提供的部署名称进行调用。上述配置仅为说明单个MCP服务器独立运行时客户端所需的参数结构。" }
基本使用方法
一旦Metorial平台和其中的MCP服务器部署完成,您可以使用Metorial提供的SDK在您的AI应用中轻松调用它们。以下是Python和TypeScript SDK的示例:
Python SDK 示例:
import asyncio from metorial import Metorial from openai import AsyncOpenAI import os async def main(): # 使用您的Metorial API Key初始化Metorial客户端 metorial = Metorial(api_key=os.getenv("METORIAL_API_KEY")) # 初始化您选择的LLM客户端 (例如OpenAI) openai = AsyncOpenAI(api_key=os.getenv("OPENAI_API_KEY")) # 调用Metorial.run方法,指定要使用的MCP服务器部署和LLM模型 response = await metorial.run( message="Search Hackernews for the latest AI discussions.", server_deployments=["hacker-news-server-deployment"], # 对应Metorial平台中部署的服务器名称 client=openai, model="gpt-4o", max_steps=25 ) print("AI Response:", response.text) asyncio.run(main())
TypeScript SDK 示例:
import { Metorial } from 'metorial'; import OpenAI from 'openai'; let metorial = new Metorial({ apiKey: 'YOUR_METORIAL_API_KEY' }); let openai = new OpenAI({ apiKey: 'YOUR_OPENAI_API_KEY' }); let result = await metorial.run({ message: 'Scan my slack messages for meetings and put them on my google calendar.', serverDeployments: ['google-calendar-server', 'slack-server'], // 对应Metorial平台中部署的服务器名称 model: 'gpt-4o', client: openai, maxSteps: 10 }); console.log('AI Response (completed in ${result.steps} steps):'); console.log(result.text);
对于需要用户OAuth认证的服务(例如Google Calendar、Slack),您需要遵循 Metorial SDK 提供的 OAuth 流程,先创建并完成认证会话,然后将获取到的 'oauthSessionId' 传递给 'serverDeployments' 配置。详细指引请参阅 Metorial 的官方文档或仓库 'README.md' 中的OAuth集成部分。
信息
分类
开发者工具