Link repositories
Build from commits
Preview pull requests
Keep source access separate
When to use GitHub
Use the GitHub integration when the server source lives in GitHub and Horizon should build, deploy, and update a hosted Python MCP or FastMCP server from that source. GitHub works well when:- A repository should become a hosted Horizon server.
- Default branch pushes should create new production-ready builds.
- Pull requests should create preview builds before production promotion.
- Operators need the build list to show branch, commit, pull request, and repository context.
- Repository permissions should stay in GitHub while Horizon manages the deployed MCP endpoint.
Integration contract
Connect GitHub
You can connect GitHub from onboarding or from organization settings.Open the GitHub connection flow
Authorize or choose an existing installation
Choose repository access
Return to Horizon
Repository picker
The repository picker shows repositories from every GitHub installation linked to the active Horizon organization. Repositories are sorted by recent update time, include public or private visibility, and show the repository default branch. When you select a repository, Horizon carries this information into the hosted server setup form:- repository full name
- repository visibility
- GitHub installation ID
- default branch
- suggested server name
Create a hosted server
After selecting a repository, Horizon asks for the server configuration that turns the repository into a hosted MCP endpoint.Fetch repository metadata and default branch
Resolve the default branch to a commit
Create the server record
Create a default branch record
Queue the first build
Create the first deployment record
Run the build in the background
What GitHub events do
Horizon processes GitHub events only when they match a linked installation and a repository already tracked by a hosted server.Production and preview behavior
Default branch builds and pull request builds use different deployment contexts.Repository access and missing source
Repository access can change outside Horizon. The most common symptoms are a missing repository in the picker, a build that cannot read source, or a private repository build that cannot start.The repository is missing from the picker
The repository is missing from the picker
The entrypoint or dependency file cannot be verified
The entrypoint or dependency file cannot be verified
server.py:object_name.A pull request did not create a preview
A pull request did not create a preview
A build uses an older commit than the branch tip
A build uses an older commit than the branch tip
A connected installation shows no repositories
A connected installation shows no repositories
Security boundary
GitHub source access is separate from Horizon endpoint access.- GitHub permissions decide which repositories Horizon can discover and build.
- GitHub installation administration decides who can link an installation: the account owner for a personal account, or an organization admin for a GitHub organization.
- Horizon organization membership decides who can start the integration flow in Horizon.
- Server access and capability policies decide who can use the deployed MCP endpoint.
- Build-time repository access is not returned to MCP clients.
- Environment variables and secrets are scoped through Horizon deployment settings, not through GitHub repository visibility.