8000 GitHub - Mnehmos/mnehmos.personal.github.mcp ยท GitHub
[go: up one dir, main page]

Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

mnehmos.github.mcp

A Model Context Protocol (MCP) server for coding agents to externalize state via GitHub Issues, Projects, and Wiki.

North Star

"A tool for coding agents to externalize state."

GitHub becomes the persistent brain; the agent is the stateless hands. The agent reconstructs context from queries, acts, and persists resultsโ€”all through gh CLI.

Philosophy

Principle Implementation
Database is intelligence GitHub Issues/Projects/Wiki = persistent state
Agent is hands MCP tools = stateless executors via gh CLI
LLM describes, engine validates Zod schemas validate before gh execution
Scalpel, not hammer Targeted queries, batch operations, minimal context

Installation

# Clone repository
git clone https://github.com/Mnehmos/mnehmos.personal.github.mcp.git
cd mnehmos.personal.github.mcp

# Install dependencies
npm install

# Build
npm run build

# Ensure gh CLI is authenticated
gh auth status

Configuration

Add to your MCP client configuration:

{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["path/to/mnehmos.personal.github.mcp/dist/index.js"]
    }
  }
}

Tools

github_issue

Manage GitHub issues with composite operations.

Actions: create, get, update, close, reopen, comment, search, list, batch_update

// Create a research task
{
  "action": "create",
  "repo": "owner/repo",
  "title": "Research: OAuth2 options",
  "body": "Compare passport.js vs oauth2-client",
  "labels": ["research", "todo"]
}

// Batch update multiple issues
{
  "action": "batch_update",
  "repo": "owner/repo",
  "operations": [
    { "issue": 42, "labels": { "add": ["in-progress"], "remove": ["todo"] } },
    { "issue": 43, "state": "closed", "comment": "Done!" }
  ]
}

github_context

Reconstruct session context for agent startup.

Actions: get, set_focus, get_blockers, get_timeline

// Full context at session start
{
  "action": "get",
  "repo": "owner/repo",
  "include": ["active_tasks", "blockers", "in_progress", "prs"]
}

Output:

๐ŸŽฎ Session Context
Repository: owner/repo
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

๐Ÿšจ BLOCKERS:
   ๐Ÿ”ด #45 Database migration fails (blocks: #42, #43)

๐Ÿ”„ In Progress:
   ๐ŸŸ  #42 Implement OAuth2 auth
      Assignee: @mnehmos | Started: 2h ago

๐Ÿ“‹ Active Tasks:
   ๐ŸŸก #46 Add error handling
   โฌœ #47 Write tests

github_project

Manage GitHub Projects (Kanban boards).

Actions: list, get, get_column, move, add_item, remove_item

{
  "action": "get",
  "repo": "owner/repo",
  "project": "Development Board"
}

Output:

๐Ÿ“‹ Project: Development Board
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

๐Ÿ“ฅ Todo (3)              ๐Ÿ”„ In Progress (2)      โœ… Done (8)
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€    โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€   โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
#45 Add error types      #42 OAuth2 auth         #38 Lexer
#46 Parser fixes         #43 Token refresh       #39 AST nodes

github_wiki

Persist documentation and architectural decisions.

Actions: list, get, create, update, search

{
  "action": "create",
  "repo": "owner/repo",
  "page": "ADR-001-Auth",
  "content": "# ADR-001: Authentication\n\n## Decision\nUse OAuth2...",
  "message": "Add ADR-001"
}

github_links

Track issue relationships and dependencies.

Actions: add, remove, get_graph, find_blockers, find_cycles

{
  "action": "get_graph",
  "repo": "owner/repo",
  "issue": 42,
  "depth": 2
}

Output:

๐Ÿ—บ๏ธ Dependency Graph for #42
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

Nodes:
  ๐ŸŸข #42 Implement OAuth2 auth
  ๐Ÿ”ด #45 Database migration (blocker)
  ๐ŸŸข #43 Token refresh

Relationships:
  #42 โ†’ blocked_by โ†’ #45
  #43 โ†’ blocked_by โ†’ #42

โš ๏ธ Cycles detected:
  ๐Ÿ”„ #42 โ†’ #43 โ†’ #42

Fuzzy Matching

Labels are automatically normalized:

Input Normalized
"in progress", "wip" "in-progress"
"bugfix", "fix" "bug"
"high pri", "p1" "priority:high"
"feature request" "enhancement"

Agent Workflow

Session Start

// Reconstruct context in ONE call
const ctx = await github_context({
  action: "get",
  repo: "Mnehmos/my-project",
  include: ["active_tasks", "blockers", "in_progress"],
});
// Agent now knows:
// - What tasks are assigned
// - What's blocking progress
// - What's currently in flight

Task Lifecycle

// 1. Create task
await github_issue({
  action: "create",
  repo,
  title: "Research OAuth2",
  labels: ["research"],
});

// 2. Start working
await github_issue({
  action: "batch_update",
  repo,
  operations: [
    { issue: 42, labels: { add: ["in-progress"], remove: ["todo"] } },
  ],
});

// 3. Document findings
await github_issue({
  action: "comment",
  repo,
  issue: 42,
  comment: "## Findings\n...",
});

// 4. Complete
await github_issue({
  action: "close",
  repo,
  issue: 42,
  comment: "Done. Decision: passport.js",
});

// 5. Create follow-up
await github_issue({
  action: "create",
  repo,
  title: "Implement OAuth2 with passport.js",
});

Development

# Run in dev mode
npm run dev

# Type check
npm run typecheck

# Run tests
npm test

# Build
npm run build

Requirements

  • Node.js 18+
  • GitHub CLI (gh) 2.4.0+ authenticated (for --json flag support)
  • Repository access for target operations

Note for Mac users: If you get unknown flag: --json, update your gh CLI: brew upgrade gh

License

MIT

Related

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0