Token导航 LogoToken导航TokenDH.com
Claude Code Extensions logo
运维云端未说明官方级别未说明来源级核验

Claude Code Extensions

MCP Server

通过简单的YAML定义向Claude Code添加自定义工具,实现快速功能扩展的开发框架

工具数

4

提示词数

0

GitHub Stars

2

资源数

0
AI代理代理服务JavaScriptClaudeClaude

安装说明

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

作者 / 组织

hexcreator

提供方

hexcreator

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

Claude Code Extensions

Add custom tools to Claude Code with simple YAML definitions

Quick Start • How It Works • Create Extensions • Built-in Tools • CLI Reference

______________________________________________________________________

✨ 演示

$ claude "use cowsay to say 'Hello from custom extensions!'"

 __________________________________

 ----------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
$ claude "roll 4d6 for my D&D character"

Rolled 4d6: [6, 4, 5, 2] = 17
$ claude "what time is it right now?"

It's Monday, January 27, 2025 at 10:42:53 AM.

这些工具在Claude Code中不存在。它们在30秒内被添加。

______________________________________________________________________

🚀 快速开始

1.安装

git clone https://github.com/hexcreator/claude-code-extensions.git
cd claude-code-extensions
npm install
npm link  # Makes 'claude-ext' available globally

2.初始化并启动

claude-ext init    # Creates ~/.claude-extensions/
claude-ext start   # Starts the extension proxy

3.使用克劳德代码

ANTHROPIC_BASE_URL=http://localhost:8892 claude "roll a d20"

就是这样!Claude Code现在可以访问自定义工具。

______________________________________________________________________

🎯 为什么存在

Claude Code附带了大约30个内置工具,但如果你需要怎么办:

需求解决方案
📢 松弛通知claude-ext create SlackNotify
🎲 D&D骰子内置 Dice 工具
⏰ 实际当前时间内置 Timestamp 工具
🔌 自定义API调用内置 HTTPRequest 工具
🐄 ASCII艺术奶牛内置 Cowsay 工具

没有MCP服务器。没有复杂的协议。只是YAML+一个处理程序。

______________________________________________________________________

⚙️ 运作原理

┌─────────────────┐     ┌───────────────────────────────────────┐     ┌─────────────────┐
│                 │     │         Extension Proxy               │     │                 │
│   Claude Code   │────▶│  ┌─────────────────────────────────┐  │────▶│  Anthropic API  │
│                 │     │  │ 1. Inject custom tool schemas   │  │     │                 │
│  "roll a d20"   │     │  │ 2. Forward to Anthropic         │  │     │  claude-sonnet  │
│                 │◀────│  │ 3. Intercept tool calls         │  │◀────│                 │
│  "You rolled    │     │  │ 4. Execute local handlers       │  │     │  tool_use:Dice  │
│   17!"          │     │  │ 5. Inject results               │  │     │                 │
│                 │     │  └─────────────────────────────────┘  │     │                 │
└─────────────────┘     └───────────────────────────────────────┘     └─────────────────┘
                                        │
                                        ▼
                        ┌───────────────────────────────┐
                        │   ~/.claude-extensions/       │
                        │   ├── tools/                  │
                        │   │   ├── dice.yaml          │
                        │   │   └── cowsay.yaml        │
                        │   └── handlers/              │
                        │       ├── dice.js            │
                        │       └── cowsay.js          │
                        └───────────────────────────────┘

代理拦截Claude Code的API请求,并:

  1. 添加您的工具 到请求的工具列表
  2. 手表 工具调用的响应
  3. 执行 您的本地处理程序
  4. 注射 结果返回到对话中

克劳德认为这些工具是内置的。它们不是——它们在你的机器上运行。

______________________________________________________________________

📝 创建扩展

方法1:CLI(推荐)

claude-ext create MyTool

这种脚手架:

  • ~/.claude-extensions/tools/mytool.yaml -工具定义
  • ~/.claude-extensions/handlers/mytool.js -处理程序实现

方法2:手动

1.创建定义:

# ~/.claude-extensions/tools/slack.yaml
name: SlackPost
description: Post a message to a Slack channel
handler: slack.js

schema:
  properties:
    channel:
      type: string
      description: Channel name (e.g., #general)
    message:
      type: string
      description: Message to post
  required:
    - channel
    - message

2.创建处理程序:

// ~/.claude-extensions/handlers/slack.js
module.exports = async function(input, context) {
  const { channel, message } = input;
  const { env, fetch } = context;

  await fetch('https://slack.com/api/chat.postMessage', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${env.SLACK_TOKEN}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ channel, text: message })
  });

  return `Message posted to ${channel}`;
};

3.使用它:

claude "post 'Build complete!' to #dev-notifications"

______________________________________________________________________

🧰 内置工具

🐄 考赛

ASCII艺术牛信息。

schema:
  message: string   # What the cow says
  style: enum       # default, think, yell, dead, etc.

🎲 骰子

随机数生成。

schema:
  sides: number     # Die sides (default: 6)
  count: number     # Number of dice (default: 1)
  # OR
  min: number       # Range minimum
  max: number       # Range maximum
  # OR
  pick: array       # Items to randomly select from

⏰ 时间戳

当前日期和时间。

schema:
  format: enum      # iso, unix, human, date, time
  timezone: string  # e.g., "America/New_York"

🌐 HTTP请求

向任何URL发出HTTP请求。

schema:
  url: string       # Full URL (required)
  method: enum      # GET, POST, PUT, DELETE
  headers: object   # Key-value headers
  body: string      # Request body

______________________________________________________________________

💻 CLI参考

claude-ext  [options]
命令描述
init初始化 ~/.claude-extensions/ 目录
start启动扩展代理
start --watch从热重新加载开始
list列出已安装的扩展
create 创建新扩展
test [json]直接测试处理程序
help显示帮助

例子

# Create and test a new tool
claude-ext create WeatherAPI
claude-ext test weatherapi '{"city": "San Francisco"}'

# Start proxy with auto-reload
claude-ext start --watch

# Use with Claude Code
ANTHROPIC_BASE_URL=http://localhost:8892 claude "your prompt"

______________________________________________________________________

🔧 处理器接口

JavaScript

module.exports = async function(input, context) {
  // input: Parameters from tool call
  // context: { env, log, fetch }

  const { myParam } = input;
  const { env, log, fetch } = context;

  log('Processing:', myParam);

  return 'Result string';
};

python

import os, json

input_data = json.loads(os.environ['EXTENSION_INPUT'])
print(f"Result: {input_data['myParam']}")

外壳

#!/bin/bash
# Input params are UPPERCASE env vars
echo "Received: $MYPARAM"

______________________________________________________________________

🔒 安全说明

  • 处理程序与 完全系统访问
  • 环境变量可以包含机密
  • 默认情况下没有沙盒
  • 仅安装您信任的扩展

______________________________________________________________________

🆚 与MCP的比较

||MCP|本框架| |--|-----|----------------| | 设置 |JSON-RPC服务器|YAML+处理程序| | 协议 |必须执行|无| | 学习曲线 |陡峭|最小| | 是时候使用第一个工具了 |小时|分钟| | 最适合 |生产|快速工具|

使用MCP 用于强大的生产级集成。 使用这个 当你只想要一个工具,想继续前进时。

______________________________________________________________________

🤝 贡献

欢迎投稿!请随意:

  • 添加新的内置工具
  • 改进代理
  • 修复漏洞
  • 加强文件编制

______________________________________________________________________

📄 许可证

MIT© hexcreator

______________________________________________________________________

Built by reverse-engineering Claude Code's architecture

See the full research →

目录标签

目录标签

AI代理代理服务JavaScriptClaudeAI工具扩展本地部署YAML配置开发框架自定义工具

支持客户端

Claude

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP