首页 教程 常见问题

插件开发

为 Claude Code 创建自定义插件的详细指南——扩展工具和能力。

插件架构

Claude Code 支持多种扩展方式:

创建 MCP 服务器

基础结构

MCP 服务器是一个独立运行的进程,通过标准输入/输出与 Claude 通信:

// 使用 @modelcontextprotocol/sdk
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new McpServer({
  name: "my-plugin",
  version: "1.0.0"
});

// 注册工具
server.tool("search-docs", { query: z.string() }, async ({ query }) => {
  const results = await searchDocumentation(query);
  return { content: [{ type: "text", text: results }] };
});

// 启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);

注册工具

每个工具需要定义:

配置

.claude/mcp.json 中配置启动方式:

{
  "mcpServers": {
    "my-plugin": {
      "command": "node",
      "args": ["/path/to/my-plugin/server.js"]
    }
  }
}

创建自定义工具(Agent SDK)

使用 Agent SDK 可以构建更复杂的工具:

from anthropic import Anthropic
from claude_code_sdk import Tool, ClaudeCode

class MyCustomTool(Tool):
    name = "search_database"
    description = "搜索项目数据库中的记录"

    def execute(self, **kwargs):
        # 实现工具逻辑
        return search_db(kwargs["query"])

cc = ClaudeCode(tools=[MyCustomTool()])

发布插件

最佳实践

下一步