Skip to content

Add MCP server: read/write tools, HTTP transport, DXT extension, skill bundle, Claude Desktop docs#2

Open
mycollablab wants to merge 20 commits intoCloverhound:mainfrom
mycollablab:dev
Open

Add MCP server: read/write tools, HTTP transport, DXT extension, skill bundle, Claude Desktop docs#2
mycollablab wants to merge 20 commits intoCloverhound:mainfrom
mycollablab:dev

Conversation

@mycollablab
Copy link
Copy Markdown

@mycollablab mycollablab commented May 1, 2026

Summary

Adds a full MCP server integration to the Webex CLI, including a Claude Desktop extension for team distribution and a packaged skill bundle for agent onboarding.

MCP Server (webex mcp serve)

  • 4-tool dispatcher — replaces the previous fixed per-API tool surface with tools that span the entire CLI automatically:
    Tool API methods Notes
    webex_read GET list, get, download, export — enforced by action verb; safe for alwaysAllow
    webex_write POST / PUT / PATCH / DELETE create, update, delete — always prompts for confirmation
    webex_help help text and flag listings for any command
    webex_usage JSONL usage log with tool name, command, status, timing
  • HTTP transport (--http) — streamable HTTP server on 127.0.0.1:47890; loopback-only enforcement; configurable port
  • webex mcp stop — SIGTERM via PID file at ~/.webex-mcp/server.pid; removes stale files automatically
  • MCP resourceswebex://commands (full command list) and webex://usage (last 50 log lines)
  • JSONL usage log~/.webex-mcp/usage.log, size-based rotation (5 MB × 3 files), tool field distinguishes read vs write

Claude Desktop Extension (webex-mcp.dxt)

  • make extension — produces webex-mcp.dxt for upload to the Claude admin portal
  • Runs locally via stdio; no shared server or public interface required
  • Each user's own Webex credentials used automatically
  • Cloverhound-branded icon (navy #07162D / teal #21B194), 512×512 PNG, fully opaque

Skill Bundle (webex.skill)

  • make skill — produces webex.skill ZIP in the expected format:
    webex-cli/SKILL.md               ← root skill (auth, commands, flags, best practices)
    webex-cli/resources/admin.md
    webex-cli/resources/calling.md
    webex-cli/resources/cc.md
    webex-cli/resources/device.md
    webex-cli/resources/meetings.md
    webex-cli/resources/messaging.md
    
  • Upload to Claude Cowork via the Skills UI, or unzip to ~/.claude/skills/ for Claude Code

Documentation

  • CLAUDE_DESKTOP.md — standalone guide: DXT install, HTTP transport, tool permission model, skill loading via Claude Desktop Projects, auth management, troubleshooting
  • mcp-config-sample.json — ready-to-use configs for both stdio and HTTP clients; webex_read in alwaysAllow
  • skill/SKILL.md and README.md updated throughout

Files changed

File Change
cmd/mcp/dispatcher.go webex_read, webex_write, webex_help, webex_usage — shared dispatch handler with read-verb enforcement
cmd/mcp/logger.go JSONL usage logger with rotation; Tool field on log entries
cmd/mcp/resources.go webex://commands and webex://usage MCP resources
cmd/mcp/serve.go HTTP transport, PID file, loopback enforcement, updated help text
cmd/mcp/stop.go webex mcp stop command
extension/manifest.json DXT manifest v0.3 — binary type, entry_point, 4 tools
extension/icon.png 512×512 Cloverhound-branded PNG (RGB, no alpha)
Webex--Cloverhound-Icons.svg Branded SVG source
mcp-config-sample.json stdio + HTTP client configs
CLAUDE_DESKTOP.md Full Claude Desktop setup and usage guide
README.md Updated MCP section with tool table and link to Claude Desktop guide
skill/SKILL.md 4-tool table, Claude Desktop instructions
Makefile extension and skill targets; clean removes both artifacts
.gitignore webex-mcp.dxt, webex.skill

Test plan

  • go build ./... passes
  • webex mcp serve (stdio) — tools appear in claude mcp list
  • webex_read with calling people list — returns JSON, logged with tool: webex_read
  • webex_read with messaging messages create — rejected with write-operation error
  • webex_write with a create command — executes after confirmation
  • webex mcp serve --http — starts on 127.0.0.1:47890, PID file written
  • webex mcp stop — server stops, PID file removed
  • make extensionwebex-mcp.dxt contains manifest.json + icon.png
  • make skillwebex.skill contains exactly webex-cli/SKILL.md + 6 resources/*.md files
  • DXT upload to Claude admin portal succeeds

🤖 Generated with Claude Code

mycollablab and others added 16 commits April 30, 2026 10:47
Split the monolithic skill/SKILL.md into 6 focused sub-skill files
(admin, calling, cc, device, meetings, messaging) loaded on demand.
Root SKILL.md trimmed from 418 to ~230 lines; each sub-skill provides
comprehensive flag and body-schema coverage for its area. Updated
postinstall and skillupdate to download and install all 7 files
(root + 6 subfolders) so the full skill tree is available after
`webex post-install`.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New codegen step appends an auto-generated ## Command Reference section
(sentinel-bounded <!-- codegen:start/end -->) to each skill/<area>/SKILL.md
listing every command and its flags. Runs as the final step of `make codegen`
after extract_api_spec.py and generate_cli.py. Idempotent — no-op if nothing
has changed. Hand-written content above the sentinels is never touched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Integrates the standalone MCP server prototype directly into the CLI.
Tools use internal/client for direct Webex API calls instead of shelling
out to the webex binary, sharing auth (via PersistentPreRunE), the HTTP
client, and token refresh infrastructure with all other commands.

Register with Claude Code: claude mcp add webex -- webex mcp serve

Tools: webex_list_spaces, webex_get_messages, webex_search_messages,
webex_send_message, webex_list_direct_messages, webex_get_person,
webex_list_meetings, webex_get_meeting_transcript,
webex_get_meeting_summary, webex_list_teams

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add webex mcp serve section with tool table and Claude Code registration
- Update Coding Agent Skill section to describe the per-area sub-skill
  structure and the auto-generated Command Reference from make codegen
- Fix resource group counts: Calling 45→47, Devices 9→10, Meetings 22→23
- Fix Quick Start: webex cc agents list (doesn't exist) → contact-service-queue list
- Fix call-queue list → list-cxe for CxE queues
- Update Development note to mention skill generation in make refresh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- webex_run: executes any CLI command as subprocess (blocked list, injection
  guard, forced --output=json, JSONL usage logging)
- webex_help: returns --help output for any command path
- webex_usage: tail-reads the usage log with optional command filter
- webex://commands resource: walks cobra tree at read time, returns all
  leaf commands with paths and short descriptions
- webex://usage resource: returns last 50 raw JSONL log lines
- Usage logger with size-based rotation (default 5 MB × 3 files)
- serve flags: --log-path, --log-max-size, --log-max-files
- Add RootCommand() accessor to cmd/root.go for cobra tree introspection

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New commands: calling customer-assist, device locations,
meetings slidosecurepremium. Updated generated files across
admin, calling, cc, device, meetings, and messaging areas.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HTTP transport mode (--http, port 47890, loopback-only enforcement)
- webex mcp stop — SIGTERM via PID file at ~/.webex-mcp/server.pid
- extension/manifest.json + icon.png for Claude Desktop Extension (.dxt)
- make extension target produces webex-mcp.dxt for admin portal distribution
- mcp-config-sample.json for both stdio and HTTP client configurations
- skill/SKILL.md: MCP server usage instructions for Claude Desktop

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Per the v0.3 schema: server.entry_point is required, and author
should only have name (no url field to avoid any URI validation edge cases).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ound branding

- webex_read: GET-style operations only (list, get, download, export, search, status)
  enforced by action verb check — safe for alwaysAllow in permissions
- webex_write: POST/PUT/PATCH/DELETE operations with explicit confirmation required
- usageEntry.Tool field logs which tool was used per invocation
- manifest.json and mcp-config-sample.json updated for 4-tool surface
- Icon: Cloverhound Blue (#003660) background, Teal (#00B2CC) Webex logo, 512x512 PNG

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Navy #002855 background (no rounded corners), Teal #00B2CC foreground.
PNG is RGB (no alpha channel), 512x512.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…teal)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers DXT admin portal distribution, HTTP transport alternative,
the four MCP tools and their permission model, how to load the skill
via Claude Desktop Projects, auth management, and common troubleshooting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mycollablab mycollablab changed the title Add webex mcp serve and expand skill structure Add MCP server: dispatcher tools, HTTP transport, DXT extension, Claude Desktop docs May 6, 2026
mycollablab and others added 4 commits May 6, 2026 16:08
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Produces webex.skill with webex-cli/{SKILL.md,admin,calling,cc,device,meetings,messaging}
structure — ready for manual upload to Claude Cowork or direct install to
~/.claude/skills/webex-cli/ by unzipping.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ZIP now contains exactly one webex-cli/SKILL.md with all 7 skill
files joined in order (root, admin, calling, cc, device, meetings, messaging).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
webex-cli/SKILL.md           — root skill
webex-cli/resources/admin.md
webex-cli/resources/calling.md
webex-cli/resources/cc.md
webex-cli/resources/device.md
webex-cli/resources/meetings.md
webex-cli/resources/messaging.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mycollablab mycollablab changed the title Add MCP server: dispatcher tools, HTTP transport, DXT extension, Claude Desktop docs Add MCP server: read/write tools, HTTP transport, DXT extension, skill bundle, Claude Desktop docs May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant