{"service":"Couchy MCP Server","version":"1.0.0","protocol":"MCP 2025-03-26","endpoint":"/mcp","tools":[{"name":"ask_couchy","description":"Ask Couchy — the Forever Couch Gang AI assistant — any question. Couchy knows everything about FCG: the platform, community, crypto (FCGC), FCGBDS bot defense system, member profiles, live streaming, and the tech stack. Use this for anything FCG-related."},{"name":"repo_search","description":"Search repository files through Couchy assist repo.search action."},{"name":"repo_read_file","description":"Read a file in the Couchy workspace sandbox."},{"name":"repo_apply_patch","description":"Write content to a file in the Couchy workspace sandbox."},{"name":"repo_terminal_run","description":"Run an allowed command in the Couchy workspace sandbox."},{"name":"repo_git_status","description":"Get git status from Couchy workspace."},{"name":"repo_git_branch","description":"Create or switch to a git branch in the Couchy workspace."},{"name":"repo_git_commit","description":"Stage and commit changes in the Couchy workspace."},{"name":"repo_git_push","description":"Push commits from the Couchy workspace to remote."},{"name":"infra_railway_status","description":"Fetch Railway status JSON via Couchy infra.railway_status action."},{"name":"infra_railway_deploy","description":"Trigger Railway deploy and return immediate status snapshot."},{"name":"infra_railway_logs","description":"Fetch recent Railway logs."},{"name":"memory_summarize","description":"Summarize recent agent memory records."},{"name":"memory_prune","description":"Prune memory records to keep only the latest N entries."},{"name":"memory_consolidate","description":"Consolidate recent memory records into one summary note."},{"name":"vision_analyze","description":"Analyze an image path through Couchy vision action."},{"name":"vision_review","description":"Review multiple image frames through Couchy vision action."},{"name":"self_diagnose","description":"Run runtime diagnosis for Couchy assist service."},{"name":"self_repair","description":"Run safe self-repair flow in Couchy assist service."},{"name":"agent_finish_run","description":"Execute the Phase 4 finished-gate contract and return evidence bundle."},{"name":"fcgbds_stats","description":"Get the current Forever Couch Gang Bot Defense System (FCGBDS) statistics — bots blocked, sent, passed, block rate, and evidence report count."},{"name":"fcg_platform_status","description":"Check the health/status of the Couchy AI service and upstream Ollama model."},{"name":"opentoonz_repo_status","description":"Fetch live OpenToonz repository metadata from GitHub (stars, forks, open issues, default branch, and latest push time)."},{"name":"opentoonz_quickstart","description":"Get a practical OpenToonz quickstart guide for onboarding into the FCG/Couchy toolset."},{"name":"github_get_repo","description":"Get repository metadata from GitHub."},{"name":"github_list_branches","description":"List repository branches from GitHub."},{"name":"github_create_branch","description":"Create a branch from an existing branch or commit SHA."},{"name":"github_get_file","description":"Get file contents from a GitHub repository."},{"name":"github_upsert_file","description":"Create or update a file in a GitHub repository branch."},{"name":"github_delete_file","description":"Delete a file from a GitHub repository branch."},{"name":"github_list_pull_requests","description":"List pull requests from a repository."},{"name":"github_create_pull_request","description":"Create a pull request."},{"name":"github_merge_pull_request","description":"Merge a pull request."},{"name":"github_list_issues","description":"List repository issues."},{"name":"github_get_issue","description":"Get details for a repository issue."},{"name":"github_add_issue_comment","description":"Add a comment to an issue."},{"name":"github_list_workflow_runs","description":"List workflow runs for a repository."},{"name":"github_trigger_workflow","description":"Trigger a workflow_dispatch run."},{"name":"create_video_from_image","description":"Create a video from an image input using Couchy video pipeline. Supports imageUrl or imageBase64. Returns a job ID for status polling."},{"name":"create_video_from_video","description":"Create a remixed video from a source video input. Supports videoUrl or videoBase64. Returns a job ID for status polling."},{"name":"create_video_from_song","description":"Create a lyric video from a song/audio input and lyrics text. Supports audioUrl or audioBase64. Returns a job ID for status polling."},{"name":"get_video_job_status","description":"Check the status of a previously submitted video job."},{"name":"create_clip_from_video","description":"Create a clip from a source video (source max 30 minutes). Supports videoUrl or videoBase64 and returns a job ID for status polling."},{"name":"create_couchy_voice_line","description":"Generate a spoken Couchy voice line from text and return an audio URL."},{"name":"create_couchy_cohost_reaction","description":"Generate a live co-host reaction from a game event and return spoken audio for stream playback."}],"usage":"Point your MCP client (e.g. Grok) at the /mcp endpoint."}