Skip to content

Core MCP server with 134 GitHub API tools#10

Open
ldraney wants to merge 6 commits intomainfrom
feature/core-mcp-server
Open

Core MCP server with 134 GitHub API tools#10
ldraney wants to merge 6 commits intomainfrom
feature/core-mcp-server

Conversation

@ldraney
Copy link
Owner

@ldraney ldraney commented Jan 27, 2026

Summary

  • Implements basic MCP server with stdio transport
  • Adds 134 tools across 8 GitHub API categories
  • Supports GITHUB_TOKEN environment variable authentication

Closes #4
Closes #5

Changes

MCP Server (#4)

  • src/index.ts: CLI entry with commander (start, auth commands)
  • src/server.ts: MCP server setup with stdio transport
  • src/auth/: Token storage (keytar) and OAuth prep

Core Tools (#5)

Category Tools Examples
repos 20 list, get, create, fork, branches
issues 17 list, get, create, comments, labels
pulls 15 list, get, create, merge, review
users 16 get, followers, keys, emails
actions 20 workflows, runs, jobs, artifacts
gists 17 list, get, create, fork
orgs 22 members, teams, invitations
search 7 repos, code, issues, users

Naming Convention

github_<category>_<method> (e.g., github_repos_list)

Test plan

  • npm install && npm run build succeeds
  • npm run typecheck passes
  • GITHUB_TOKEN=xxx npm start starts server
  • Tools appear in MCP tool list

🤖 Generated with Claude Code

ldraney and others added 6 commits January 27, 2026 16:31
- package.json: Dependencies and npm scripts
- tsconfig.json: TypeScript strict mode, ES2022
- eslint.config.js: ESLint 9 flat config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements issue #4: Basic MCP server

- src/index.ts: CLI entry point with commander
- src/server.ts: MCP server setup with stdio transport
- src/auth/token-storage.ts: Keytar integration for token storage
- src/auth/oauth-device-flow.ts: OAuth Device Flow (Phase 2 prep)

Supports GITHUB_TOKEN env var for authentication.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements issue #5: Core tools

Tool categories (~68 tools):
- repos: 20 tools (list, get, create, fork, branches, commits, releases)
- issues: 17 tools (list, get, create, update, comments, labels, milestones)
- pulls: 15 tools (list, get, create, merge, review, comments)
- users: 16 tools (get, followers, following, keys, emails)

Naming convention: github_<category>_<method>

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Expands tool coverage (~66 more tools):
- actions: 20 tools (workflows, runs, jobs, artifacts, secrets)
- gists: 17 tools (list, get, create, fork, comments)
- orgs: 22 tools (members, teams, invitations)
- search: 7 tools (repos, code, issues, users, commits, topics)

Total: ~134 tools across 8 categories

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Stub implementations for webhook event handling:
- src/webhooks/event-queue.ts: Event storage and retrieval
- src/webhooks/smee-client.ts: smee.io client integration
- src/resources/webhooks.ts: MCP resources for events

Required for server.ts imports. Full implementation in Phase 4.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests for:
- Token storage mocking
- Tool registration and structure
- Tool naming convention validation
- Event queue functionality

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Phase 1] Core tools: repos, issues, pulls, users [Phase 1] Basic MCP server with stdio transport

1 participant