# Create Hashi

> Create a new bridge plugin for MCP server integration

- Skill: `thebushidocollective/create-hashi` (Agent Skill)
- Install (CLI): `npx skillmds@latest add thebushidocollective/create-hashi`
- Raw SKILL.md: https://api.skillmd.com/api/skills/thebushidocollective/create-hashi/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: thebushidocollective (https://skillmd.com/u/thebushidocollective)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/thebushidocollective/create-hashi

---


# Create a Bridge (橋 - Hashi) Plugin

Create a new bridge plugin for: $ARGUMENTS

## What is a Bridge Plugin?

Bridge plugins provide access to external knowledge and capabilities through MCP servers. A bridge connects Claude Code to external services, APIs, databases, or specialized tools that extend Claude's capabilities.

## Plugin Structure

Create the following directory structure:

```
plugins/services/{service-name}/
├── .claude-plugin/
│   └── plugin.json          # Plugin metadata (ONLY plugin.json goes here)
├── han-plugin.yml           # MCP server config + hooks + memory (at plugin root)
└── README.md               # Plugin documentation
```

### Categories

| Category | For | Examples |
|----------|-----|---------|
| `services/` | External service integrations | github, gitlab, sentry, reddit |
| `bridges/` | AI tool bridges | gemini-cli, opencode, kiro |

**IMPORTANT**:

- Only `plugin.json` goes inside `.claude-plugin/` (NO mcpServers here)
- MCP server config goes in `han-plugin.yml` at plugin root
- `han-plugin.yml` is the single source of truth for MCP config
- Bridge plugins typically don't include skills or agents

## Step 1: Create plugin.json

Create `.claude-plugin/plugin.json` (metadata only, NO mcpServers):

```json
{
  "name": "{service-name}",
  "version": "1.0.0",
  "description": "MCP server configuration for {Service Name} integration providing {key capabilities}.",
  "author": {
    "name": "The Bushido Collective",
    "url": "https://thebushido.co"
  },
  "homepage": "https://github.com/thebushidocollective/han",
  "repository": "https://github.com/thebushidocollective/han",
  "license": "MIT",
  "keywords": [
    "mcp",
    "{service-type}",
    "{capability}",
    "server"
  ]
}
```

## Step 2: Create han-plugin.yml

Create `han-plugin.yml` at the plugin root with the MCP server configuration.

### Preferred: HTTP Transport

```yaml
mcp:
  name: {server-name}
  description: {Brief description of capabilities}
  type: http
  url: https://mcp.service.com/mcp
```

### Alternative: NPX Package

```yaml
mcp:
  name: {server-name}
  description: {Brief description of capabilities}
  command: npx
  args:
    - -y
    - "@scope/package-name"
```

### With Environment Variables

```yaml
mcp:
  name: {server-name}
  description: {Brief description of capabilities}
  command: npx
  args:
    - -y
    - "@scope/package"
  env:
    API_KEY: ${SERVICE_API_KEY}
```

## Step 3: Write README.md

```markdown
# {Service Name}

{Description of what this MCP server provides}

## What This Plugin Provides

### MCP Server: {server-name}

- **{Capability 1}**: {Description}
- **{Capability 2}**: {Description}

## Installation

\`\`\`bash
han plugin install {service-name}
\`\`\`

## Configuration

Set required environment variables:

\`\`\`bash
export {ENV_VAR}="your-value-here"
\`\`\`
```

## Step 4: Register in Marketplace

Add your plugin to `.claude-plugin/marketplace.json`:

```json
{
  "name": "{service-name}",
  "description": "MCP server for {Service Name} integration providing {key capabilities}.",
  "source": "./plugins/services/{service-name}",
  "category": "Bridge",
  "keywords": [
    "mcp",
    "{keyword1}",
    "{keyword2}",
    "server"
  ]
}
```

## Best Practices

### DO

- Put MCP config in `han-plugin.yml`, NOT in `plugin.json`
- Prefer HTTP transport over stdio when available
- Use well-maintained MCP server packages
- Document all environment variables clearly

### DON'T

- Don't put mcpServers in plugin.json (use han-plugin.yml)
- Don't hardcode API keys or secrets
- Don't use Docker unless no HTTP or npx option exists

## Examples of Well-Structured Bridge Plugins

- **github**: HTTP transport with OAuth
- **sentry**: HTTP-based MCP server
- **reddit**: Simple uvx-based MCP server

## Questions?

See the [Han documentation](https://han.guru) or ask in [GitHub Discussions](https://github.com/thebushidocollective/han/discussions).

