Astrail
Back to Marketplace
Executable connectorCodeJul 22, 20260 calls

GitHub Connector

Executable GitHub connector for repository search, issues, pull requests, and approved issue creation.

Credential setup

bearer

Use a fine-grained token restricted to the repositories and read permissions these tools need.

Setup docs: https://github.com/settings/tokens

After adding this connector, attach the credential on the server page, then run astrail tools list.

Hosted MCP endpoint

/api/mcp/preset-github

Private servers require an Astrail API key in the Authorization header.

MCP client snippets

Connect

Claude Desktop config

{
  "mcpServers": {
    "github-connector": {
      "url": "/api/mcp/preset-github"
    }
  }
}

cURL initialize

curl -sS -X POST "/api/mcp/preset-github" \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

cURL tools/list

curl -sS -X POST "/api/mcp/preset-github" \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

cURL tools/call

curl -sS -X POST "/api/mcp/preset-github" \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"github_search_repositories","arguments":{"q":"example","sort":"example","order":"example","per_page":"example"}}}'

Runtime behavior

Runtime healthhealthy
Endpoint healthnot_checked
Execution modesafe_rest_execution
Deterministic executionSupported
Generated sourceExport only
Endpoint mapAvailable
Endpoint mappedYes
Auth-required endpointsPresent
Browser runtime endpointsNone detected
Last statusnot recorded
Last execution modenot recorded
Last toolnot recorded
Last latencynot recorded
Upstream statusnot recorded
Trace IDnot recorded
Error codenone
Observabilitystructured fallback
Rate limit modestandard
Missing authauth_required / oauth_required
Missing mappingmapping_required

Astrail does not evaluate generated TypeScript inside Next.js. Hosted calls are routed through stored tool metadata and endpoint maps.

Tools

10
github_search_repositories

Search GitHub repositories by query.

github_list_issues

List issues for a GitHub repository.

github_get_issue

Retrieve a GitHub issue by number.

github_list_pull_requests

List pull requests for a GitHub repository.

github_get_pull_request

Get a GitHub pull request and its review state.

github_create_issue

Create a GitHub issue after approval.

github_list_issue_comments

List comments on a GitHub issue with explicit pagination.

github_create_issue_comment

Add a comment to a GitHub issue after approval.

github_list_commits

List recent commits on a branch or repository with explicit pagination.

github_list_branches

List repository branches and protection state.

server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "GitHub Connector", version: "1.0.0" });

// Curated Astrail connector for: github_search_repositories, github_list_issues, github_get_issue, github_list_pull_requests, github_get_pull_request, github_create_issue, github_list_issue_comments, github_create_issue_comment, github_list_commits, github_list_branches.
// The hosted endpoint executes its verified deterministic endpoint map. Attach a least-privilege provider credential before calling private tools.

server.tool("connector_status", "Confirm this curated connector template is installed.", z.object({}), async () => ({
  content: [{ type: "text", text: "Connector installed. Attach provider credentials to enable hosted API calls." }],
}));

const transport = new StdioServerTransport();
await server.connect(transport);