Skip to content
K

GitHub

The GitHub integration connects your GitHub repositories to Monday Morning, enabling bidirectional issue sync and pull request linking. When configured, an agent can pull GitHub issues into Monday Morning’s issue tracker and link PRs directly to spec tasks — keeping your project records in sync with your development workflow.

mm_sync_github belongs to the opt-in imports tool group. It is not listed in the agent’s tool catalog until you opt in via the Monday Morning server entry in .mcp.json:

"env": { "MM_TOOL_GROUPS": "imports" }

The tool still dispatches by name even when not listed — opting in only makes it visible in tools/list. PR linking uses mm_link, a core universal verb that is always listed.

  • A GitHub account with access to the target repository
  • A Personal Access Token (classic) with repo and read:org scopes, or an authenticated gh CLI
  • Monday Morning MCP server running in your AI coding tool
  1. Go to github.com/settings/tokens/new
  2. Give the token a descriptive name (e.g., “Monday Morning”)
  3. Select the following scopes:
    • repo — full control of private repositories
    • read:org — read org membership (needed for org-owned repos)
  4. Click Generate token and copy the value immediately — you will not see it again

If you already use the GitHub CLI, you can skip this step: the integration falls back to gh auth token.

The token is resolved in this order:

  1. The bridge file .mm/integrations/github.json (written by the desktop app)
  2. The GITHUB_TOKEN environment variable
  3. gh auth token from the GitHub CLI

In the desktop app, open Settings → Integrations → GitHub — an inline expandable row where you authenticate and pick the repository this project tracks. There is no separate connect modal; the whole flow runs inside the settings row. The chosen repo is saved as integrations.github.repo in .mm/config.json (also settable via mm_configure_integration).

Alternatively, set the environment variable in your shell profile:

Terminal window
export GITHUB_TOKEN="ghp_your_token_here"

Ask your agent to sync GitHub issues:

Sync my GitHub issues for this project

The agent will call mm_sync_github with a pull direction. If configured correctly, you will see issues from your repository appear in .mm/issues/.

ToolDescription
mm_sync_githubSync issues bidirectionally between GitHub and Monday Morning. Supports pull, push, or both directions. Opt-in imports group.
mm_link with entity: "github_pr"Annotate a spec task with a GitHub pull request reference. Core universal verb, always listed.

The old mm_link_github_pr name is deprecated — it still dispatches for backward compatibility, but new work should call mm_link with entity: "github_pr".

Pull issues from GitHub into Monday Morning

Section titled “Pull issues from GitHub into Monday Morning”
Pull all open GitHub issues into this project

The agent calls mm_sync_github with direction: "pull", creating corresponding issue files in .mm/issues/.

Link PR #42 to the "Add dark mode" task in the 2026-03-15-dark-mode spec

The agent calls mm_link with entity: "github_pr", which annotates the matching task in the spec with the PR reference and its live status.

Push my local issues to GitHub

The agent calls mm_sync_github with direction: "push", creating GitHub issues from your .mm/issues/ files.

“Bad credentials” error Your token is expired or invalid. Generate a new one at github.com/settings/tokens, or re-authenticate with gh auth login.

“Not Found” when syncing a private repo Ensure your token has the repo scope. Tokens with only public_repo cannot access private repositories.

“No GitHub repo configured” The project has no repository set. Pick one in Settings → Integrations → GitHub, or set integrations.github.repo via mm_configure_integration.

The agent says it can’t see mm_sync_github The imports group is not opted in. Add "MM_TOOL_GROUPS": "imports" to the server’s env in .mcp.json — or just ask the agent to call the tool by its exact name; delisted tools still dispatch.

Rate limiting GitHub allows 5,000 API requests per hour for authenticated users. If you hit the limit, wait for the reset window or reduce sync frequency.