mirror of
https://github.com/JackChen-me/open-multi-agent.git
synced 2026-10-22 02:53:26 -05:00
Examples grew to 19 flat files mixing basics, provider demos, orchestration patterns, and integrations, with two files colliding on the number 16. Reorganized into category folders so the structure scales as new providers and patterns get added. Layout: examples/basics/ core execution modes (4 files) examples/providers/ one example per supported model provider (8 files) examples/patterns/ reusable orchestration patterns (6 files) examples/integrations/ MCP, observability, AI SDK (3 entries) examples/production/ placeholder for end-to-end use cases Notable changes: - Dropped numeric prefixes; folder + filename now signal category and intent. - Rewrote former smoke-test scripts (copilot, gemini) into proper three-agent team examples matching the deepseek/grok/minimax/groq template. Adapter unit tests in tests/ already cover correctness, so this only improves documentation quality. - Added examples/README.md as the categorized index plus maintenance rules for new submissions. - Added examples/production/README.md with acceptance criteria for the new production category. - Updated all internal npx tsx paths and import paths (../src/ to ../../src/). - Updated README.md and README_zh.md links. - Fixed stale cd paths inside examples/integrations/with-vercel-ai-sdk/README.md.
60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
/**
|
|
* MCP GitHub Tools
|
|
*
|
|
* Connect an MCP server over stdio and register all exposed MCP tools as
|
|
* standard open-multi-agent tools.
|
|
*
|
|
* Run:
|
|
* npx tsx examples/integrations/mcp-github.ts
|
|
*
|
|
* Prerequisites:
|
|
* - GEMINI_API_KEY
|
|
* - GITHUB_TOKEN
|
|
* - @modelcontextprotocol/sdk installed
|
|
*/
|
|
|
|
import { Agent, ToolExecutor, ToolRegistry, registerBuiltInTools } from '../../src/index.js'
|
|
import { connectMCPTools } from '../../src/mcp.js'
|
|
|
|
if (!process.env.GITHUB_TOKEN?.trim()) {
|
|
console.error('Missing GITHUB_TOKEN: set a GitHub personal access token in the environment.')
|
|
process.exit(1)
|
|
}
|
|
|
|
const { tools, disconnect } = await connectMCPTools({
|
|
command: 'npx',
|
|
args: ['-y', '@modelcontextprotocol/server-github'],
|
|
env: {
|
|
...process.env,
|
|
GITHUB_TOKEN: process.env.GITHUB_TOKEN,
|
|
},
|
|
namePrefix: 'github',
|
|
})
|
|
|
|
const registry = new ToolRegistry()
|
|
registerBuiltInTools(registry)
|
|
for (const tool of tools) registry.register(tool)
|
|
const executor = new ToolExecutor(registry)
|
|
|
|
const agent = new Agent(
|
|
{
|
|
name: 'github-agent',
|
|
model: 'gemini-2.5-flash',
|
|
provider: 'gemini',
|
|
tools: tools.map((tool) => tool.name),
|
|
systemPrompt: 'Use GitHub MCP tools to answer repository questions.',
|
|
},
|
|
registry,
|
|
executor,
|
|
)
|
|
|
|
try {
|
|
const result = await agent.run(
|
|
'List the last 3 open issues in JackChen-me/open-multi-agent with title and number.',
|
|
)
|
|
|
|
console.log(result.output)
|
|
} finally {
|
|
await disconnect()
|
|
}
|