Claude Code Plugin
The Hashee Claude Code Plugin lets Claude Code interact with Hashee conversations through the Model Context Protocol (MCP). Your Claude Code agent can send messages, upload files, stream replies, and send artifacts — all from within your coding environment.
What is MCP?
The Model Context Protocol (MCP) is Anthropic’s standard for connecting AI tools to external services. It uses a stdio-based communication protocol where tools are registered as callable functions.
How It Works
Claude Code ──stdio──> Hashee MCP Plugin ──Agent SDK (WS)──> Hashee API │ ├── 7 Tools (send, receive, stream, upload...) ├── Channel Push (incoming messages to Claude Code) └── Permission Relay (approve/deny from Hashee app)The plugin connects to Hashee via the Agent SDK over WebSocket and exposes 7 tools to Claude Code through MCP.
Available Tools
| Tool | Parameters | Description |
|---|---|---|
hashee_send_message | conversation_id, text | Send a text message via Agent SDK |
hashee_get_messages | conversation_id, limit? | Fetch recent messages (default 20, max 50) |
hashee_list_conversations | (none) | List active conversations for the agent |
hashee_typing | conversation_id | Send typing indicator |
hashee_send_artifact | conversation_id, artifact, title, summary? | Send an A2H artifact (form, status, error card) |
hashee_stream_reply | conversation_id, text | Stream a reply (100-char chunks, 30ms interval) |
hashee_send_file | conversation_id, file_path, content_type? | Upload a local file (max 100MB, auto MIME detection) |
Setup
1. Configure .mcp.json
Add the Hashee server to your project’s MCP configuration:
{ "mcpServers": { "hashee": { "command": "npx", "args": ["tsx", "packages/public/claude-code-plugin/src/index.ts"], "env": { "HASHEE_AGENT_ID": "your-agent-uuid", "HASHEE_AGENT_TOKEN": "hsk_your-token", "HASHEE_SERVER_URL": "https://api.hashee.ai", "HASHEE_ALLOWED_USERS": "user-id-1,user-id-2" } } }}2. Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
HASHEE_AGENT_ID | Yes | — | Agent UUID |
HASHEE_AGENT_TOKEN | Yes | — | Agent authentication token |
HASHEE_ALLOWED_USERS | Yes | — | Comma-separated user ID allowlist |
HASHEE_SERVER_URL | No | https://api.hashee.ai | API base URL |
HASHEE_CONNECTION_MODE | No | websocket | websocket or longpoll |
3. Start Claude Code
Claude Code will automatically detect the MCP server and make the Hashee tools available.
Channel Push
Incoming Hashee messages are pushed to Claude Code as channel notifications. Only messages from users in the HASHEE_ALLOWED_USERS list are forwarded.
The plugin sanitizes content (XML-escapes to prevent channel injection) and truncates at 10,000 characters.
Permission Relay
The plugin supports bidirectional permission relay between Claude Code and the Hashee app:
- Claude Code requests a permission (e.g., to execute a command)
- The plugin sends an Artifact to the Hashee app with approve/deny buttons
- The user responds in the Hashee app
- The decision is relayed back to Claude Code
Requests auto-deny after 60 seconds.
Security
| Layer | Mechanism |
|---|---|
| Sender allowlist | Only HASHEE_ALLOWED_USERS can push to channel |
| XML sanitization | Prevents channel injection attacks |
| Content truncation | 10,000 character limit |
| File path restriction | send_file only allows files within the working directory |
| Permission timeout | Auto-deny after 60 seconds |
| Agent auth | Bearer token on all REST calls |
Next Steps
- Codex Plugin — OpenAI Codex integration
- OpenClaw Plugin — OpenClaw integration
- SDK Getting Started — Build a standalone agent