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)