github_codespaces_get_org_secret
Retrieve a specific secret from a GitHub organization's codespace secrets store by providing the organization name and secret name.
Instructions
Get an organization secret
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | org | |
| secret_name | Yes | secret_name |
Implementation Reference
- src/tools/codespaces.ts:72-81 (handler)Handler for github_codespaces_get_org_secret tool. Makes a GET request to /orgs/{org}/codespaces/secrets/{secret_name}.
{ name: "github_codespaces_get_org_secret", description: "Get an organization secret", inputSchema: z.object({ org: z.string().describe("org"), secret_name: z.string().describe("secret_name") }), handler: async (args: Record<string, any>) => { return githubRequest("GET", `/orgs/${args.org}/codespaces/secrets/${args.secret_name}`, undefined, undefined); }, - src/tools/codespaces.ts:72-78 (schema)Input schema for github_codespaces_get_org_secret. Expects 'org' (string) and 'secret_name' (string) parameters.
{ name: "github_codespaces_get_org_secret", description: "Get an organization secret", inputSchema: z.object({ org: z.string().describe("org"), secret_name: z.string().describe("secret_name") }), - src/index.ts:55-67 (registration)The tool is registered as part of 'codespaces' category via codespacesTools array. The server registers all tools from this array using server.tool() in the for loop at lines 110-129.
const allToolModules = [ { category: "actions", tools: actionsTools }, { category: "activity", tools: activityTools }, { category: "agent-tasks", tools: agentTasksTools }, { category: "apps", tools: appsTools }, { category: "billing", tools: billingTools }, { category: "campaigns", tools: campaignsTools }, { category: "checks", tools: checksTools }, { category: "classroom", tools: classroomTools }, { category: "code-scanning", tools: codeScanningTools }, { category: "code-security", tools: codeSecurityTools }, { category: "codes-of-conduct", tools: codesOfConductTools }, { category: "codespaces", tools: codespacesTools }, - src/client.ts:9-59 (helper)The githubRequest helper function that executes the actual HTTP request to the GitHub API. The handler for this tool calls githubRequest with method 'GET'.
export async function githubRequest<T>( method: string, path: string, body?: Record<string, unknown>, params?: Record<string, string | number | boolean | string[] | undefined> ): Promise<T> { const url = new URL(`${BASE_URL}${path}`); if (params) { for (const [key, value] of Object.entries(params)) { if (value === undefined || value === null || value === "") continue; if (Array.isArray(value)) { url.searchParams.set(key, value.join(",")); } else { url.searchParams.set(key, String(value)); } } } const headers: Record<string, string> = { Authorization: `Bearer ${getToken()}`, Accept: "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28", "User-Agent": "github-mcp/1.0.0", }; if (body) { headers["Content-Type"] = "application/json"; } const res = await fetch(url.toString(), { method, headers, body: body ? JSON.stringify(body) : undefined, }); if (!res.ok) { const text = await res.text().catch(() => ""); let detail = text; try { const json = JSON.parse(text); detail = json.message || text; if (json.errors) detail += ` -- ${JSON.stringify(json.errors)}`; } catch {} throw new Error(`GitHub API error ${res.status}: ${detail}`); } if (res.status === 204) return {} as T; return res.json() as Promise<T>; }