definitions.ts•4.46 kB
/**
* GitHub MCPサーバーで使用するツールの定義
*/
import { zodToJsonSchema } from "zod-to-json-schema";
import * as files from "../operations/files";
import * as repository from "../operations/repository";
import * as branches from "../operations/branches";
import * as issues from "../operations/issues";
import * as pulls from "../operations/pulls";
import * as search from "../operations/search";
import * as releases from "../operations/releases";
/**
* GitHub MCP サーバーで提供するツール定義
*/
export const GITHUB_TOOLS = [
{
name: "create_or_update_file",
description: "Create or update a single file in a GitHub repository",
inputSchema: zodToJsonSchema(files.CreateOrUpdateFileSchema),
},
{
name: "search_repositories",
description: "Search for GitHub repositories",
inputSchema: zodToJsonSchema(repository.SearchRepositoriesSchema),
},
{
name: "create_repository",
description: "Create a new GitHub repository",
inputSchema: zodToJsonSchema(repository.CreateRepositoryOptionsSchema),
},
{
name: "get_file_contents",
description: "Get the contents of a file or directory from a GitHub repository",
inputSchema: zodToJsonSchema(files.GetFileContentsSchema),
},
{
name: "push_files",
description: "Push multiple files to a GitHub repository in a single commit",
inputSchema: zodToJsonSchema(files.PushFilesSchema),
},
{
name: "create_branch",
description: "Create a new branch in a GitHub repository",
inputSchema: zodToJsonSchema(branches.CreateBranchSchema),
},
{
name: "create_issue",
description: "Create a new issue in a GitHub repository",
inputSchema: zodToJsonSchema(issues.CreateIssueSchema),
},
{
name: "get_issue",
description: "Get details of a specific issue in a GitHub repository",
inputSchema: zodToJsonSchema(issues.GetIssueSchema),
},
{
name: "list_issues",
description: "List issues in a GitHub repository with filtering options",
inputSchema: zodToJsonSchema(issues.ListIssuesOptionsSchema),
},
{
name: "update_issue",
description: "Update an existing issue in a GitHub repository",
inputSchema: zodToJsonSchema(issues.UpdateIssueOptionsSchema),
},
{
name: "add_issue_comment",
description: "Add a comment to an existing issue",
inputSchema: zodToJsonSchema(issues.IssueCommentSchema),
},
{
name: "create_pull_request",
description: "Create a new pull request in a GitHub repository",
inputSchema: zodToJsonSchema(pulls.CreatePullRequestSchema),
},
{
name: "get_pull_request",
description: "Get details of a specific pull request",
inputSchema: zodToJsonSchema(pulls.GetPullRequestSchema),
},
{
name: "list_pull_requests",
description: "List and filter repository pull requests",
inputSchema: zodToJsonSchema(pulls.ListPullRequestsSchema),
},
{
name: "merge_pull_request",
description: "Merge a pull request",
inputSchema: zodToJsonSchema(pulls.MergePullRequestSchema),
},
{
name: "search_code",
description: "Search for code across GitHub repositories",
inputSchema: zodToJsonSchema(search.SearchCodeSchema),
},
{
name: "search_issues",
description: "Search for issues and pull requests across GitHub repositories",
inputSchema: zodToJsonSchema(search.SearchIssuesSchema),
},
{
name: "search_users",
description: "Search for users on GitHub",
inputSchema: zodToJsonSchema(search.SearchUsersSchema),
},
{
name: "create_release",
description: "Create a new release for a repository",
inputSchema: zodToJsonSchema(releases.CreateReleaseSchema),
},
{
name: "get_release",
description: "Get a specific release by ID",
inputSchema: zodToJsonSchema(releases.GetReleaseSchema),
},
{
name: "get_latest_release",
description: "Get the latest release for a repository",
inputSchema: zodToJsonSchema(releases.GetLatestReleaseSchema),
},
{
name: "list_releases",
description: "List releases for a repository",
inputSchema: zodToJsonSchema(releases.ListReleasesSchema),
},
{
name: "update_release",
description: "Update an existing release",
inputSchema: zodToJsonSchema(releases.UpdateReleaseSchema),
},
{
name: "delete_release",
description: "Delete a release",
inputSchema: zodToJsonSchema(releases.DeleteReleaseSchema),
},
];