Token导航 LogoToken导航TokenDH.com
Open AI Agnet MCP Client logo
开发工具未说明官方级别未说明来源级核验

Open AI Agnet MCP Client

MCP Server

一个基于TypeScript的客户端,用于通过OpenAI的Agents SDK与Model Context Protocol (MCP)服务器交互,提供CLI和交互模式,并支持持久化对话记忆。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
命令行工具TypeScriptToken认证

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

MuhammadMurtuzaZafar

提供方

MuhammadMurtuzaZafar

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

OpenAI代理MCP客户端

一个基于TypeScript的客户端,用于使用OpenAI的代理SDK与模型上下文协议(MCP)服务器进行交互。此客户端提供CLI和交互模式,用于查询具有持久会话内存的MCP服务器。

概述

本项目演示了如何:

  • 连接到MCP服务器(SSE传输)
  • 构建使用MCP工具的OpenAI代理
  • 在多个回合中维护对话历史记录
  • 支持单查询和交互模式

先决条件

  • Node.js 18+(用于顶级等待支持)
  • npm或纱线
  • OpenAI API密钥(在这里买一个)
  • 访问MCP服务器(SSE传输)或凭据(如果需要身份验证)

安装

git clone 
cd mcpclient_ts
npm install

构建

npm run build

配置

创建一个 .env 项目根目录中的文件:

# Required
OPENAI_API_KEY=sk-...

# MCP Server Configuration
MCP_SERVER_URL=https://your-mcp-server.com/sse
MCP_SERVER_NAME=Your Server Name

# Optional: Authentication headers
USER_EMAIL=user@example.com
AUTHORIZATION_TOKEN=your_auth_token_here

环境变量

变量描述必填示例
OPENAI_API_KEYOpenAI API密钥sk-...
MCP_SERVER_URLMCP服务器SSE端点https://mcp.example.com/sse
MCP_SERVER_NAME服务器的显示名称My Server
USER_EMAIL请求的电子邮件标题(如果需要)user@example.com
AUTHORIZATION_TOKEN用于身份验证的承载令牌your_token

用法

单查询模式

运行一个查询并退出:

npm start "What tools are available?"
npm start "Generate a summary of recent items"

交互模式

使用持久内存启动交互式聊天会话:

npm start

然后键入您的查询:

You: What tools do you have?
Assistant: [response with conversation context]

You: Can you use the previous tools to help me?
Assistant: [response remembering previous conversation]

You: exit

项目结构

mcpclient_ts/
├── src/
│   └── main.ts           # Main agent implementation
├── dist/                 # Compiled JavaScript (generated)
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
├── .env                  # Environment variables (create this)
└── README.md             # This file

建筑

关键组件

内存会话

  • 存储会话历史进程内存
  • 自动管理多个回合的上下文
  • 对开发和测试有用

MCPServerSSE

  • 使用服务器发送事件传输连接到MCP服务器
  • 注意:SSE已被弃用,取而代之的是Streamable HTTP;使用 MCPServerStreamableHttp 对于新的实现
  • 缓存性能工具列表

代理

  • AI模型的名称和说明
  • 连接到MCP服务器以访问工具
  • 使用OpenAI run 推理功能

数据流

User Input
    ↓
Agent (with MCP tools)
    ↓
MCP Server (via SSE)
    ↓
Tool Results
    ↓
OpenAI Model
    ↓
Response
    ↓
MemorySession (stores conversation)

定制

更改代理说明

src/main.ts,修改 instructions 字段:

const agent = new Agent({
  name: 'My Custom Agent',
  instructions: 'You are a helpful assistant that...', // Customize here
  mcpServers: [mcpServer],
});

使用OpenAI对话API进行持久存储

替换 MemorySession 随着 OpenAIConversationsSession:

import { OpenAIConversationsSession } from '@openai/agents';

const session = new OpenAIConversationsSession({
  conversationId: 'conv_123', // Optional: reuse existing conversation
});

连接多个MCP服务器

import { connectMcpServers } from '@openai/agents';

const servers = [
  new MCPServerSSE({ url: 'https://server1.com/sse', name: 'Server 1' }),
  new MCPServerSSE({ url: 'https://server2.com/sse', name: 'Server 2' }),
];

const mcpServers = await connectMcpServers(servers, { connectInParallel: true });

const agent = new Agent({
  name: 'Multi-Server Agent',
  instructions: 'Use tools from multiple servers to answer questions.',
  mcpServers: mcpServers.active,
});

使用流式HTTP而不是SSE

为了获得更好的性能和更新的MCP实现:

import { MCPServerStreamableHttp } from '@openai/agents';

const mcpServer = new MCPServerStreamableHttp({
  url: process.env.MCP_SERVER_URL || '',
  name: 'Backend',
  requestInit: {
    headers: {
      'X-User-Email': process.env.USER_EMAIL || '',
      'Authorization': `Bearer ${process.env.AUTHORIZATION_TOKEN || ''}`,
    },
  },
});

筛选可用工具

import { createMCPToolStaticFilter } from '@openai/agents';

const mcpServer = new MCPServerSSE({
  url: process.env.MCP_SERVER_URL || '',
  name: 'Backend',
  toolFilter: createMCPToolStaticFilter({
    allowed: ['safe_tool', 'read_only_tool'],
    blocked: ['delete_tool', 'admin_tool'],
  }),
  requestInit: { /* ... */ },
});

脚本

# Build TypeScript to JavaScript
npm run build

# Run in production
npm start [query]

# Build and run
npm run build && npm start

API 参考

内存会话

将对话历史记录存储在进程内存中:

const session = new MemorySession({
  sessionId: 'session-123', // Optional: stable identifier
  initialItems: [], // Optional: seed with existing history
});

// Get all items
const history = await session.getItems();

// Add items
await session.addItems(items);

// Remove last item
await session.popItem();

// Clear all
await session.clearSession();

run()选项

const result = await run(agent, userInput, {
  session: mySession, // Add conversation memory
  stream: true, // Stream responses (requires OpenAI Responses API)
});

故障排除

“找不到模块‘dist/main.js’”

首先构建TypeScript:

npm run build

“只允许使用顶级'wait'表达式…”

更新 tsconfig.json:

{
  "compilerOptions": {
    "module": "esnext",
    "target": "es2022"
  }
}

MCP服务器连接失败

  • 验证 MCP_SERVER_URL.env
  • 检查身份验证标头(USER_EMAIL, AUTHORIZATION_TOKEN)
  • 测试服务器可用性: curl https://your-mcp-server.com/sse

代理不记得上下文

确保你通过 { session }run() 功能在 chat() 功能。

参考文献

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交问题和拉取请求。

打开AI Agnet MCP客户端-

目录标签

目录标签

命令行工具TypeScriptToken认证MCP服务器本地部署OpenAI代理对话记忆CLI工具

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP