MCP 集成

集成 MCP (Model Context Protocol) 工具服务器的完整示例。

文件系统服务器

import { ClaudeCodeSDK, MCPServerManager, adaptMCPTool, ToolRegistry } from 'claude-code-sdk-ts'

async function main() {
  // 1. 创建 MCP 服务器管理器
  const manager = new MCPServerManager()

  // 2. 添加文件系统 MCP 服务器
  await manager.addServer({
    name: 'fs',
    transport: 'stdio',
    command: 'npx',
    args: ['-y', '@modelcontextprotocol/server-filesystem', './data'],
  })

  // 3. 适配 MCP 工具
  const registry = new ToolRegistry()
  for (const mcpTool of manager.getTools()) {
    registry.register(adaptMCPTool(mcpTool))
  }

  // 4. 创建 SDK 并使用
  const sdk = new ClaudeCodeSDK({
    llm: {
      provider: 'anthropic',
      apiKey: process.env.ANTHROPIC_API_KEY!,
    },
  })

  const session = sdk.createSession()
  const response = await session.send('List files in the data directory')
  console.log(response.text)
}

多个 MCP 服务器

import { ClaudeCodeSDK } from 'claude-code-sdk-ts'

const sdk = new ClaudeCodeSDK({
  llm: { provider: 'anthropic', apiKey: process.env.ANTHROPIC_API_KEY! },
  mcpServers: [
    {
      name: 'database',
      transport: 'stdio',
      command: 'node',
      args: ['./mcp-db-server.js'],
    },
    {
      name: 'weather',
      transport: 'url',
      url: 'https://weather-mcp.example.com/sse',
    },
  ],
})

// MCP 工具自动注册到 SDK
const session = sdk.createSession()
const response = await session.send('Query the database for recent users')
console.log(response.text)