2
0

2 Commits

Author SHA1 Message Date
94e0a27b36 docs(api): document organization and landing page MCP tools
Updates README to document newly added MCP tools for organization management and landing page configuration.

Adds Organization Tools section documenting 8 tools: list_orgs, get_org_overview, update_org, list_org_repos, get_org_profile_readme, update_org_profile_readme, pin_org_repo, unpin_org_repo.

Adds Landing Page Tools section documenting 12 tools for configuring repository landing pages: get_landing_config, list_landing_templates, enable_landing_page, and 9 update_landing_* tools for brand, hero, pricing, comparison, features, social proof, SEO, theme, stats, value props, and CTA sections.

Includes example prompts users can ask Claude to exercise the new functionality.
2026-04-19 17:35:54 -04:00
4eb7f78b6b fix(mcp): restore Content-Length framing for MCP stdio
All checks were successful
Release / build (amd64, windows) (push) Successful in 39s
Release / build (arm64, darwin) (push) Successful in 40s
Release / build (amd64, linux) (push) Successful in 52s
Release / build (amd64, darwin) (push) Successful in 1m27s
Release / build (arm64, linux) (push) Successful in 1m38s
Release / release (push) Successful in 24s
Revert to LSP-style Content-Length framing for MCP stdio transport. Testing confirmed that MCP clients (Claude Code) do expect Content-Length headers, not raw NDJSON. The earlier NDJSON change was based on incorrect assumption about the protocol.
2026-04-15 03:46:17 -04:00
2 changed files with 46 additions and 4 deletions

View File

@@ -4,11 +4,14 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that e
## Features
- **Organization Management** - List orgs, view overviews, update settings, manage profile READMEs
- **Repository Organization** - List repos with group support, pin/unpin featured repos
- **Query Runners** - List runners, check status, view capabilities, monitor queue depth
- **Manage Workflows** - List, trigger, rerun, cancel, and approve workflow runs
- **View Logs** - Get job logs with automatic error extraction for failed jobs
- **Access Artifacts** - List and download workflow artifacts
- **Manage Releases** - List releases, get assets, check download counts
- **Landing Pages** - Configure and customize repository landing pages
- **AI Learning** - Query error patterns, report solutions, help other AIs learn
- **AI-Friendly** - Structured JSON responses designed for AI consumption
@@ -52,6 +55,14 @@ Add to your Claude Code settings:
### 3. Use It
Ask Claude things like:
- "What organizations do I have access to?"
- "Show me the overview for myorg"
- "List all repos in myorg grouped by category"
- "Update myorg's description and website"
- "Show me the profile README for myorg"
- "Update the profile README for myorg"
- "Pin the 'flagship-app' repo to the myorg overview"
- "Unpin 'old-project' from myorg"
- "What runners are online?"
- "Show me the latest workflow runs for gitcaddy/act_runner"
- "Why did run #77 fail?"
@@ -73,9 +84,24 @@ Ask Claude things like:
- "List all repos for myorg"
- "List open issues for gitcaddy/server"
- "Show me issue #42 in myorg/myrepo"
- "Set up a landing page for myorg/myrepo"
- "Update the hero section on the landing page"
## Available Tools
### Organization Tools
| Tool | Description |
|------|-------------|
| `list_orgs` | List all organizations the authenticated user belongs to |
| `get_org_overview` | Get comprehensive org overview: pinned repos, groups, members, stats, profile README, recent activity |
| `update_org` | Update org info (full name, email, description, website, location, group header) |
| `list_org_repos` | List repos for an org with optional `group_by=group_header` grouping |
| `get_org_profile_readme` | Get the raw markdown of an org's profile README from its `.profile` repo |
| `update_org_profile_readme` | Update (or create) the org's profile README; creates the `.profile` repo if needed |
| `pin_org_repo` | Pin a repository to the org's overview page, optionally into a group |
| `unpin_org_repo` | Unpin a repository from the org's overview page |
### Runner Tools
| Tool | Description |
@@ -134,6 +160,25 @@ Ask Claude things like:
| `get_compatibility_matrix` | See what project types work on which runners |
| `diagnose_job_failure` | Auto-analyze failed job logs and suggest solutions |
### Landing Page Tools
| Tool | Description |
|------|-------------|
| `get_landing_config` | Get the full landing page configuration for a repository |
| `list_landing_templates` | List available landing page templates |
| `enable_landing_page` | Enable or disable a repository's landing page |
| `update_landing_brand` | Update the brand section (name, logo, colors) |
| `update_landing_hero` | Update the hero section (headline, description, CTA) |
| `update_landing_pricing` | Update the pricing section |
| `update_landing_comparison` | Update the feature comparison table |
| `update_landing_features` | Update the features list |
| `update_landing_social_proof` | Update testimonials and social proof |
| `update_landing_seo` | Update SEO metadata (title, description, keywords) |
| `update_landing_theme` | Update the visual theme (colors, fonts, layout) |
| `update_landing_stats` | Update stat counters |
| `update_landing_value_props` | Update value propositions |
| `update_landing_cta` | Update the call-to-action section |
## AI Learning System
GitCaddy includes a collaborative AI learning system. When you encounter and fix CI/CD errors, you can report your solutions to help other AI assistants:

View File

@@ -246,10 +246,7 @@ func writeResponse(resp interface{}) {
}
func writeFramed(data []byte) {
// MCP stdio transport uses newline-delimited JSON (NDJSON), not LSP-style
// Content-Length framing. Claude Code and other MCP clients reject
// Content-Length headers on stdio, so we emit one JSON object per line.
fmt.Fprintf(os.Stdout, "%s\n", data)
fmt.Fprintf(os.Stdout, "Content-Length: %d\r\n\r\n%s", len(data), data)
}
func debugLog(format string, args ...interface{}) {