Connection check
verified live · 20h ago
gluecron
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Tools
62
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
20h ago
Tools & capabilities
62 toolsRead from the running server on 20h ago.
gluecron_acquire_lease
target_id*duration_mstarget_type*agent_session_id*
Grab an exclusive lease on a target (e.g. a PR or branch) for an agent session. Returns null when another agent holds an active lease. Grab an exclusive lease on a target (e.g. a PR or branch) for an agent session. Returns null when another agent holds an active lease.
gluecron_ai_cost_summary
read-only
repoownerscopeagent_session_id
Return AI spend rollups. Scope by one of: user_id (self), repo {owner,repo}, or agent_session_id. Defaults to caller's user spend. Return AI spend rollups. Scope by one of: user_id (self), repo {owner,repo}, or agent_session_id. Defaults to caller's user spend.
gluecron_assign_issue
repo*owner*number*assignee*
Assign an issue to a user. Gluecron does not yet have a dedicated assignee table; assignment is modelled as an `assignee:<username>` label so it integrates with existing label tool… Assign an issue to a user. Gluecron does not yet have a dedicated assignee table; assignment is modelled as an `assignee:<username>` label so it integrates with existing label tooling. Requires 'repo' scope.
gluecron_atomic_multi_file_commit
repo*owner*branch*changes*message*base_branch
Apply a set of file writes + deletes as a single atomic commit on a branch (creates the branch if it doesn't exist). The killer agent tool: blob/tree/commit/ref-update sequence. Ea… Apply a set of file writes + deletes as a single atomic commit on a branch (creates the branch if it doesn't exist). The killer agent tool: blob/tree/commit/ref-update sequence. Each change is `{path, content?, content_base64?, deleted?}`. Requires 'repo' scope.
gluecron_cancel_workflow_run
can modify data
repo*owner*run_id*
Cancel a queued/running workflow run. Requires 'repo' scope. Cancel a queued/running workflow run. Requires 'repo' scope.
gluecron_chat_continue
chat_id*message*
Send another message to an existing repo chat. Returns the assistant's reply. If the AI service does not answer this fails with a JSON-RPC error carrying {chat_id, ai_error} rather… Send another message to an existing repo chat. Returns the assistant's reply. If the AI service does not answer this fails with a JSON-RPC error carrying {chat_id, ai_error} rather than returning apology copy as a reply.
gluecron_chat_with_repo
repo*owner*titlemessage*
Start a new chat with a repo: creates a chat row, sends the first user message, streams + persists the assistant reply. Returns {chat_id, reply}. If the AI service does not answer… Start a new chat with a repo: creates a chat row, sends the first user message, streams + persists the assistant reply. Returns {chat_id, reply}. If the AI service does not answer this fails with a JSON-RPC error carrying {chat_id, ai_error} — it never returns apology copy as a reply. Requires authentication.
gluecron_clone_url
read-only
repo*owner*
Return the authenticated HTTPS clone URL for a repo + a credential-helper hint. Use this instead of embedding tokens in URLs. Returns {url, hint}. Return the authenticated HTTPS clone URL for a repo + a credential-helper hint. Use this instead of embedding tokens in URLs. Returns {url, hint}.
gluecron_close_issue
can modify data
repo*owner*number*
Close an open issue. Requires authenticated caller with write access. Idempotent — closing an already-closed issue is a no-op. Returns {state}. Close an open issue. Requires authenticated caller with write access. Idempotent — closing an already-closed issue is a no-op. Returns {state}.
gluecron_close_pr
can modify data
repo*owner*number*
Close an open pull request without merging. Requires authenticated caller with write access. Idempotent. Returns {state}. Close an open pull request without merging. Requires authenticated caller with write access. Idempotent. Returns {state}.
gluecron_comment_issue
body*repo*owner*number*
Add a comment to an existing issue. Requires authenticated caller with write access. Returns {commentId}. Add a comment to an existing issue. Requires authenticated caller with write access. Returns {commentId}.
gluecron_comment_pr
body*repo*owner*number*
Add a comment to a pull request. Requires authenticated caller with write access. Returns {commentId}. Add a comment to a pull request. Requires authenticated caller with write access. Returns {commentId}.
gluecron_create_agent_session
name*repository_idbranch_namespacebudget_cents_per_day
Mint a new agent-multiplayer session. Returns the plaintext `token` exactly once (store it). Requires 'admin' scope. Mint a new agent-multiplayer session. Returns the plaintext `token` exactly once (store it). Requires 'admin' scope.
gluecron_create_branch
sha*repo*owner*branch*
Create a new branch ref pointing at an existing sha. Mirrors POST /api/v2/repos/.../git/refs. Requires 'repo' scope. Returns {ref, sha}. Create a new branch ref pointing at an existing sha. Mirrors POST /api/v2/repos/.../git/refs. Requires 'repo' scope. Returns {ref, sha}.
gluecron_create_issue
bodyrepo*owner*title*
Create a new issue on a Gluecron repository. Requires authenticated caller with write access on the target repo. Returns {number, url}. Create a new issue on a Gluecron repository. Requires authenticated caller with write access on the target repo. Returns {number, url}.
gluecron_create_pr
bodyrepo*owner*title*base_branchhead_branch*
Open a new pull request. `head_branch` is required; `base_branch` defaults to the repo default branch. Requires authenticated caller with write access. Returns {number, url}. Open a new pull request. `head_branch` is required; `base_branch` defaults to the repo default branch. Requires authenticated caller with write access. Returns {number, url}.
gluecron_delete_file
can modify data
sha*path*repo*owner*branch*message*
Delete a file from a branch via git plumbing. Requires the existing blob sha (optimistic concurrency) and 'repo' scope. Mirrors DELETE /api/v2/contents. Delete a file from a branch via git plumbing. Requires the existing blob sha (optimistic concurrency) and 'repo' scope. Mirrors DELETE /api/v2/contents.
gluecron_delete_repo
can modify data
repo*owner*
Permanently delete a repository row (git data on disk is left untouched). Owner-only. Requires 'admin' scope. Returns {deleted: true}. Permanently delete a repository row (git data on disk is left untouched). Owner-only. Requires 'admin' scope. Returns {deleted: true}.
gluecron_explain_repo
read-only
repo*owner*
Return the cached AI 'explain this codebase' Markdown for a repo. Pure read — never triggers a new generation (use the web UI for that). Return the cached AI 'explain this codebase' Markdown for a repo. Pure read — never triggers a new generation (use the web UI for that).
gluecron_find_symbol
read-only
name*repo*owner*
Find definitions of a symbol by name within a repo. Wraps src/lib/symbols.findDefinitions. Find definitions of a symbol by name within a repo. Wraps src/lib/symbols.findDefinitions.
gluecron_fork_repo
repo*owner*
Fork a repository to the authenticated caller's namespace. Mirrors POST /:owner/:repo/fork. Returns {owner, repo, url}. Requires 'repo' scope. Fork a repository to the authenticated caller's namespace. Mirrors POST /:owner/:repo/fork. Returns {owner, repo, url}. Requires 'repo' scope.
gluecron_generate_commit_message
read-only
diff*style
Generate a commit message for a diff. Same engine as gluecron_generate_pr_description but explicit for the commit-message use case. Generate a commit message for a diff. Same engine as gluecron_generate_pr_description but explicit for the commit-message use case.
gluecron_generate_pr_description
read-only
diff*style
Generate an AI commit-message-style description for a diff. Uses src/lib/ai-commit-message.ts under the hood; gracefully degrades to a heuristic when ANTHROPIC_API_KEY is missing.… Generate an AI commit-message-style description for a diff. Uses src/lib/ai-commit-message.ts under the hood; gracefully degrades to a heuristic when ANTHROPIC_API_KEY is missing. Returns {subject, body}.
gluecron_generate_release_notes
read-only
repo*owner*to_tag*from_tag
Generate release notes between two tags. Wraps src/lib/ai-release-notes.generateReleaseNotes. Returns the rendered Markdown + section data. Generate release notes between two tags. Wraps src/lib/ai-release-notes.generateReleaseNotes. Returns the rendered Markdown + section data.
gluecron_generate_tests
moderepo*owner*number*
Generate tests for a PR via Claude. Wraps src/lib/ai-test-generator.generateTestsForPr. Mode 'follow-up-pr' opens a new PR; 'append-commit' commits onto the head branch. Requires '… Generate tests for a PR via Claude. Wraps src/lib/ai-test-generator.generateTestsForPr. Mode 'follow-up-pr' opens a new PR; 'append-commit' commits onto the head branch. Requires 'repo' scope.
gluecron_get_agent_budget
read-only
agent_session_id*
Return spent / cap / remaining cents for an agent session. Return spent / cap / remaining cents for an agent session.
gluecron_get_commit
read-only
sha*repo*owner*include_files
Fetch a single commit by SHA: metadata plus the list of files it changed (path, status, additions, deletions). Mirrors GET /api/v2/repos/.../commits/:sha. Patch bodies are NOT incl… Fetch a single commit by SHA: metadata plus the list of files it changed (path, status, additions, deletions). Mirrors GET /api/v2/repos/.../commits/:sha. Patch bodies are NOT included — use gluecron_get_diff for those.
gluecron_get_diff
read-only
shabaseheadrepo*owner*include_patch
+1
Read the actual changes in a commit or a branch range. Pass `sha` for one commit against its first parent, or `base`+`head` for everything head adds since the merge base (what a PR… Read the actual changes in a commit or a branch range. Pass `sha` for one commit against its first parent, or `base`+`head` for everything head adds since the merge base (what a PR proposes). Returns {files:[{path, oldPath?, status, additions, deletions, binary, patch, patchTruncated}], stats, truncated}. Patch text is byte-capped; set include_patch=false for a files-changed summary only.
gluecron_get_pr
read-only
repo*owner*number*
Fetch the full detail record of a pull request (title, body, state, branches, draft, author, timestamps). Authenticated callers only (the read tool surface still works anonymously)… Fetch the full detail record of a pull request (title, body, state, branches, draft, author, timestamps). Authenticated callers only (the read tool surface still works anonymously).
gluecron_get_preview_url
read-only
repo*owner*branch*
Return the branch-preview URL + status for a (repo, branch) pair. Wraps branch-previews.getPreviewForBranch. Returns {ok:false, reason:'not enabled on this host'} when the host has… Return the branch-preview URL + status for a (repo, branch) pair. Wraps branch-previews.getPreviewForBranch. Returns {ok:false, reason:'not enabled on this host'} when the host has no PREVIEW_DOMAIN (no preview would ever resolve).
gluecron_get_workflow_logs
read-only
repo*owner*run_id*
Return concatenated per-job logs for a workflow run, plus per-job metadata. JSON-friendly companion to the ZIP-download endpoint. Return concatenated per-job logs for a workflow run, plus per-job metadata. JSON-friendly companion to the ZIP-download endpoint.
gluecron_get_workflow_run
read-only
repo*owner*run_id*
Fetch a workflow run's metadata + status. Mirrors GET /api/v2/repos/.../actions/runs/:id. Fetch a workflow run's metadata + status. Mirrors GET /api/v2/repos/.../actions/runs/:id.
gluecron_label_issue
repo*owner*labels*number*
Attach one or more labels to an issue. Labels are created if they don't yet exist on the repo. Requires 'repo' scope. Returns {labels}. Attach one or more labels to an issue. Labels are created if they don't yet exist on the repo. Requires 'repo' scope. Returns {labels}.
gluecron_list_prs
read-only
repo*limitowner*stateoffset
List pull requests on a repo, filtered by state (open|closed|merged|all). Authenticated callers only. Returns up to 50 summary rows. List pull requests on a repo, filtered by state (open|closed|merged|all). Authenticated callers only. Returns up to 50 summary rows.
gluecron_list_tree
read-only
ref*pathrepo*owner*recursive
List directory contents at a ref. `path` scopes the listing to a subtree and is honoured in BOTH modes; `recursive: true` walks the whole subtree instead of one level. Always retur… List directory contents at a ref. `path` scopes the listing to a subtree and is honoured in BOTH modes; `recursive: true` walks the whole subtree instead of one level. Always returns the same shape: {path, ref, recursive, entries, truncated, totalCount}. Recursive entries carry full repo-relative paths; non-recursive entries carry names. A ref that does not exist is an error, never an empty listing.
gluecron_merge_pr
can modify data
repo*owner*number*confirm_high_risk
Merge an open PR. Enforces the same checks as the HTTP merge flow: not a draft, head SHA resolves, GateTest+AI-review hard gates pass, branch-protection rules satisfied. M3: soft-b… Merge an open PR. Enforces the same checks as the HTTP merge flow: not a draft, head SHA resolves, GateTest+AI-review hard gates pass, branch-protection rules satisfied. M3: soft-blocks when the pre-merge risk score is `critical` unless `confirm_high_risk: true` is passed. Returns {merged, sha?, reason?, riskScore?}.
gluecron_open_draft_pr
bodyrepo*owner*title*base_branchhead_branch*
Open a draft pull request. Same payload as gluecron_create_pr but forces is_draft=true. Useful for AI-in-progress PRs that shouldn't run mergeability checks yet. Open a draft pull request. Same payload as gluecron_create_pr but forces is_draft=true. Useful for AI-in-progress PRs that shouldn't run mergeability checks yet.
gluecron_propose_doc_update
repo*owner*
Manual trigger for the AI doc-update flow: scans tracked sections on the default branch and opens a PR rewriting stale prose. Requires 'repo' scope. Manual trigger for the AI doc-update flow: scans tracked sections on the default branch and opens a PR rewriting stale prose. Requires 'repo' scope.
gluecron_propose_migration
repo*owner*base_sha*changelogdependency*to_version*
+1
Propose a dependency-upgrade PR. Wraps src/lib/migration-assistant.proposeMajorMigration. Requires 'repo' scope. Propose a dependency-upgrade PR. Wraps src/lib/migration-assistant.proposeMajorMigration. Requires 'repo' scope.
gluecron_provision_pr_sandbox
repo*owner*number*
Provision (or re-provision) a sandbox for a PR. Wraps pr-sandbox.provisionSandbox. Requires 'repo' scope. Returns {ok:false, reason:'not enabled on this host'} when no sandbox prov… Provision (or re-provision) a sandbox for a PR. Wraps pr-sandbox.provisionSandbox. Requires 'repo' scope. Returns {ok:false, reason:'not enabled on this host'} when no sandbox provisioner runs on the host.
gluecron_pr_status_summary
read-only
repo*owner*number*
Compute a one-shot status summary for a PR: state, risk score, AI-review verdicts (trio), gate signals. Read-only. Compute a one-shot status summary for a PR: state, risk score, AI-review verdicts (trio), gate signals. Read-only.
gluecron_read_file
read-only
refpath*repo*owner*encoding
Read a file from a repo at a given ref. Mirrors GET /api/v2/repos/:owner/:repo/contents/:path. Returns {path, size, content, encoding}. Read a file from a repo at a given ref. Mirrors GET /api/v2/repos/:owner/:repo/contents/:path. Returns {path, size, content, encoding}.
gluecron_refactor_across_repos
dry_rundescription*repository_ids
Plan + execute a refactor that spans multiple repos owned by the caller. Wraps src/lib/multi-repo-refactor.ts. `dry_run: true` returns the plan only. Requires 'repo' scope. Plan + execute a refactor that spans multiple repos owned by the caller. Wraps src/lib/multi-repo-refactor.ts. `dry_run: true` returns the plan only. Requires 'repo' scope.
gluecron_release_lease
lease_id*
Release a lease by id. Idempotent. Returns {released}. Release a lease by id. Idempotent. Returns {released}.
gluecron_reopen_issue
repo*owner*number*
Reopen a previously closed issue. Requires authenticated caller with write access. Idempotent. Returns {state}. Reopen a previously closed issue. Requires authenticated caller with write access. Idempotent. Returns {state}.
gluecron_repo_explain_codebase
read-only
repo*owner*
Return the cached AI 'explain this codebase' Markdown for a public repo (most recent commit). Returns null when no cached explanation exists yet. Return the cached AI 'explain this codebase' Markdown for a public repo (most recent commit). Returns null when no cached explanation exists yet.
gluecron_repo_health
read-only
repo*owner*
Compute the current health report for a public repo: overall score (0-100), letter grade, per-category breakdown (security/testing/complexity/dependencies/documentation/activity),… Compute the current health report for a public repo: overall score (0-100), letter grade, per-category breakdown (security/testing/complexity/dependencies/documentation/activity), and a list of insights to fix next. Backed by computeHealthScore in src/lib/intelligence.ts.
gluecron_repo_list_issues
read-only
repo*limitowner*offset
List open issues for a public repository. Returns up to 50 ordered by most-recent. List open issues for a public repository. Returns up to 50 ordered by most-recent.
gluecron_repo_read_file
read-only
refpath*repo*owner*
Read a single file from a repository at a given ref (branch / tag / commit). Private repos are readable when the authenticated caller has access. Returns the text content (binary f… Read a single file from a repository at a given ref (branch / tag / commit). Private repos are readable when the authenticated caller has access. Returns the text content (binary files rejected).
gluecron_repo_search
read-only
limitquery*offset
Search Gluecron repositories by keyword (name + description), case-insensitively. Returns public repos plus any private repos owned by the authenticated caller. Default 20 per page… Search Gluecron repositories by keyword (name + description), case-insensitively. Returns public repos plus any private repos owned by the authenticated caller. Default 20 per page, max 50; `total` is the full match count and `nextOffset` pages through it.
gluecron_request_changes
body*repo*owner*number*
Post a 'changes requested' AI-review comment on a PR. The comment is tagged with isAiReview=true so the gate-checker recognises it. Requires 'repo' scope. Post a 'changes requested' AI-review comment on a PR. The comment is tagged with isAiReview=true so the gate-checker recognises it. Requires 'repo' scope.
gluecron_search_issues
read-only
repo*limitowner*query*state
Search issues by title/body keyword on a single repo, filtered by state. Returns ranked rows. Search issues by title/body keyword on a single repo, filtered by state. Returns ranked rows.
gluecron_search_prs
read-only
repo*limitowner*query*state
Search pull requests by title/body keyword on a repo. Search pull requests by title/body keyword on a repo.
gluecron_search_repos
read-only
sortlimitquery*offset
Full-text search of public repositories by name/description, case-insensitively. Mirrors GET /api/v2/search/repos. `total` is the full match count (not the page size) and `nextOffs… Full-text search of public repositories by name/description, case-insensitively. Mirrors GET /api/v2/search/repos. `total` is the full match count (not the page size) and `nextOffset` pages through it.
gluecron_security_scan
read-only
refrepo*owner*include_ai_reviewmax_candidate_lines
Everything Gluecron actually knows about a repository's security, in one honest call: OSV.dev CVE/GHSA advisories against the indexed dependency graph (with FIXED VERSIONS), Gluecr… Everything Gluecron actually knows about a repository's security, in one honest call: OSV.dev CVE/GHSA advisories against the indexed dependency graph (with FIXED VERSIONS), Gluecron's supplemental advisory list, a full-tree committed-secret scan, and optionally a Claude semantic code review. Unlike gluecron_repo_health, an empty result is NEVER reported as a pass: every category returns status 'assessed' | 'partial' | 'not_assessed' | 'error' with a machine-readable reason code, so you can tell 'we checked and it is clean' from 'we never looked'. In particular, a repo whose dependency graph was never indexed returns dependency_advisories.status='not_assessed' (reason 'dependency_graph_not_indexed'), not an empty advisory list. Read-only.
gluecron_semantic_search
read-only
repo*limitowner*query*
Query the per-repo vector index (Voyage embeddings when configured, hash fallback otherwise). Reads the live per-push index (code_embeddings) first, falling back to the manually-re… Query the per-repo vector index (Voyage embeddings when configured, hash fallback otherwise). Reads the live per-push index (code_embeddings) first, falling back to the manually-reindexed chunk index (code_chunks). Returns {hits, source}.
gluecron_ship_spec
body*repo*owner*title*
Drop a spec file in .gluecron/specs/ with status: ready so the autopilot picks it up. Wraps voice-to-pr.shipAsSpec — handle both voice + manual specs. Requires 'repo' scope. Drop a spec file in .gluecron/specs/ with status: ready so the autopilot picks it up. Wraps voice-to-pr.shipAsSpec — handle both voice + manual specs. Requires 'repo' scope.
gluecron_trigger_workflow
refrepo*owner*inputsfilename*
Dispatch a workflow_dispatch run. Mirrors POST /api/v2/repos/.../actions/workflows/:filename/dispatches. Requires 'repo' scope. Dispatch a workflow_dispatch run. Mirrors POST /api/v2/repos/.../actions/workflows/:filename/dispatches. Requires 'repo' scope.
gluecron_unlabel_issue
repo*label*owner*number*
Detach a label from an issue. Idempotent. Requires 'repo' scope. Returns {removed: boolean}. Detach a label from an issue. Idempotent. Requires 'repo' scope. Returns {removed: boolean}.
gluecron_update_repo
can modify data
repo*owner*is_privatedescriptiondefault_branch
Update repository description / visibility / default_branch. Owner-only. Requires 'repo' scope. Returns {ok: true}. Update repository description / visibility / default_branch. Owner-only. Requires 'repo' scope. Returns {ok: true}.
gluecron_voice_to_pr
asrepo*owner*transcript*
Interpret a free-form voice transcript and either ship it as a spec or create an issue (caller picks via `as`). Wraps src/lib/voice-to-pr.ts. Requires 'repo' scope. Interpret a free-form voice transcript and either ship it as a spec or create an issue (caller picks via `as`). Wraps src/lib/voice-to-pr.ts. Requires 'repo' scope.
gluecron_write_file
path*repo*owner*branch*contentmessage*
+2