Gentic GitHub — Documentation
Connect a GitHub repo once with a one-click app install, then let your AI agent read and write the docs and skill files that live in it — through the Model Context Protocol. List a folder, get a file back verbatim, save or append, find a file by name, and create or remove folders. Every change is a real commit on the repo's default branch, so your repo's history is the audit log.
1. Getting Started
Sign Up & Get Your API Key
Before you can use Gentic GitHub, you need an API key to authenticate your requests.
- Go to gentic.co/github and create an account.
- Create an organization from your dashboard. API keys and billing are scoped to the organization.
- Generate an API key and use it as a Bearer token in your MCP client.
2. Connecting to the MCP Server
The server is available at https://mcp.gentic.co/github. For Claude Code:
claude mcp add gentic-github \
--transport http \
https://mcp.gentic.co/github \
--header "Authorization: Bearer YOUR_API_KEY"For Claude Web and ChatGPT you can also connect via OAuth — no API key needed. See the connect section on the landing page for other MCP clients (n8n, OpenClaw).
3. Agent Skill
For the best results, pair the MCP server with the Gentic GitHub agent skill. The MCP server gives your agent tool access; the skill teaches it the optimal workflow order. Both the raw SKILL.md and a ready-to-upload .skill bundle are generated on demand from the live manifest, so they always reflect the current tools and pricing.
Add the skill directly via URL:
https://gentic.co/github/SKILL.mdOr upload a .skill bundle to Claude Managed Agents:
https://gentic.co/github/gentic-github.skillDownload this file and upload it wherever Claude Managed Agents asks for a .skill file. It's a zip bundle generated on demand from the latest SKILL.md.
4. When to Apply
- User wants their agent to read a file or doc that lives in a connected GitHub repo.
- User wants to save a new file or doc into their repo ("commit this to the repo", "add this as a doc in GitHub").
- User wants to grow a doc over time by appending, rather than rewriting it each commit.
- User wants to organize files into folders, or list what's in a folder.
- User wants to find a file by name when they don't remember its exact path.
- User wants to remove a file or folder from the repo.
- User wants their agent's docs/skill files version-controlled in git rather than in a separate store.
5. Workflow
1. Connect a repo once, then work without credentials
The GitHub server sources the connection from the org's installed GitHub App (Gentic dashboard → Integrations → GitHub). The user installs the app on a repo and picks it; the server resolves the installation, owner, repo, and default branch from that connection on every call. Your agent never passes a token — it just names files and the server acts on the connected repo. If nothing is connected, the tools return a clear "connect a repo first" error rather than guessing.
2. List and read with github_list_files / github_get_file
`github_list_files` walks the repo (or a folder path) so the agent can see what's there before acting. `github_get_file` returns a file's exact bytes — no summarization or truncation — so the agent works from the real content. Both read from the repo's default branch. Reach for `github_find_file` when the user names a file but not its path: it locates the file by name across the repo, then `github_get_file` returns it.
3. Write with github_save_file (create or replace)
`github_save_file` writes a file at a path and commits it to the repo's default branch — creating it if it's new, or replacing its contents if it exists. The commit is the unit of change, so the repo's history records every save with its diff. Use it for whole-file writes: a new doc, a regenerated skill file, or a full rewrite of an existing one.
4. Grow a doc with github_append_file
`github_append_file` adds new content to the end of an existing file and commits it, preserving everything already there. Use it to build up a single document over time — appending each new section as it comes in — instead of scattering one file per fragment or rewriting the whole file on every change. Append-to-end only; to edit earlier content, `github_get_file` → edit → `github_save_file` the whole file back.
5. Organize with github_create_folder / github_delete_folder
`github_create_folder` adds a folder to the repo (git tracks folders via their contents, so this seeds the path), and `github_delete_folder` removes a folder and the files under it in a commit. Collect related docs under a common path and prune whole trees when they're no longer needed — all as commits on the repo's default branch.
6. Remove a file with github_delete_file
`github_delete_file` deletes a single file and commits the removal. It's the clean way to retract a doc the user no longer wants — the deletion is a commit, so it's recoverable from history if needed.
7. Present results clearly
Don't dump raw file contents or API JSON. Summarize what's in a folder, confirm what was written, and link or name the committed path so the user can find it in GitHub. When a write lands, say so plainly ("committed `docs/onboarding.md` to the repo") rather than echoing the whole file.
6. Tool Reference
8 tools, rendered live from the Gentic MCP manifest. Parameter tables come directly from each tool's JSON Schema.
github_append_file
Append text to a file in your organization's connected GitHub repository. Reads the current contents and adds `content` after a separator (default a newline), committing to the default branch. Creates the file if it doesn't exist yet. Free.
| Parameter | Type | Description |
|---|---|---|
pathrequired | string | File path within the repo, e.g. `docs/changelog.md` (case-sensitive). |
contentrequired | string | The UTF-8 text to append. |
separator | string | Separator inserted between the existing content and the appended text. Default: a newline. |
message | string | Optional commit message. Defaults to `Append to <path> via Gentic`. |
github_create_folder
Create a folder in your organization's connected GitHub repository. Because git cannot track empty directories, this adds a `.gitkeep` placeholder inside the folder. Does nothing if the folder already exists. Free.
| Parameter | Type | Description |
|---|---|---|
pathrequired | string | Folder path within the repo, e.g. `docs/playbooks` (case-sensitive). |
message | string | Optional commit message. Defaults to `Create folder <path> via Gentic`. |
github_delete_file
Delete a file from your organization's connected GitHub repository, committing to the default branch. A path that doesn't exist is treated as already deleted (no error). Free.
| Parameter | Type | Description |
|---|---|---|
pathrequired | string | File path within the repo to delete, e.g. `docs/old.md` (case-sensitive). |
message | string | Optional commit message. Defaults to `Delete <path> via Gentic`. |
github_delete_folder
Delete a folder and all the files inside it from your organization's connected GitHub repository, committing to the default branch (one commit per file). Note: this is NOT atomic — each file is its own commit, so a mid-way failure can leave the folder partially deleted (the result lists which files were removed). Refuses to delete the repository root. Free.
| Parameter | Type | Description |
|---|---|---|
pathrequired | string | Folder path within the repo to delete, e.g. `docs/archive` (case-sensitive). |
recursiverequired | boolean | Delete subfolders too (default true). If false, a folder containing subfolders is refused. default: true |
message | string | Optional commit message. Defaults to `Delete folder <path> via Gentic`. |
github_find_file
Find files in your organization's connected GitHub repository. `mode: "path"` (default) matches the query against file paths/names (fast, exact-state). `mode: "content"` full-text searches file contents via GitHub Code Search (note: the code index lags recent commits and only covers the default branch). Returns matching files with their path and URL. Path mode may miss files on very large repos (the file tree is truncated past ~100k entries). Free.
| Parameter | Type | Description |
|---|---|---|
queryrequired | string | Search text. For path mode, a substring of the file path/name. |
moderequired | string | `path` (match file paths, default) or `content` (full-text search file contents). enum: path, content · default: "path" |
limitrequired | integer | Max results (1-50, default 20). 1 – 50 · default: 20 |
github_get_file
Read a file's contents from your organization's connected GitHub repository. Returns the exact UTF-8 text of the file at `path` on the given branch (default branch if `ref` is omitted). A missing path returns `{ found: false }`. Files larger than 100 MB are not supported. Free.
| Parameter | Type | Description |
|---|---|---|
pathrequired | string | File path within the repo, e.g. `docs/onboarding.md` (case-sensitive). |
ref | string | Optional branch, tag, or commit SHA to read from. Defaults to the repo's default branch. |
github_list_files
List files and folders in your organization's connected GitHub repository. Pass `path` to browse a folder (omit for the repo root). Set `recursive: true` to list the whole subtree (uses the Git Trees API, which also covers folders with more than 1000 items). Returns each entry's name, path, type (file/dir), size, and sha. Free.
| Parameter | Type | Description |
|---|---|---|
path | string | Folder path within the repo, e.g. `docs/`. Omit for the repo root. |
recursiverequired | boolean | List the entire subtree under `path` (default false = immediate children only). default: false |
ref | string | Optional branch, tag, or commit SHA. Defaults to the repo's default branch. |
github_save_file
Create or update a file in your organization's connected GitHub repository. Writes `content` (UTF-8 text) to `path`, committing directly to the default branch. Creates the file if it doesn't exist, replaces it if it does. Returns the commit. Free.
| Parameter | Type | Description |
|---|---|---|
pathrequired | string | File path within the repo, e.g. `docs/onboarding.md` (case-sensitive). |
contentrequired | string | The full UTF-8 text content of the file. |
message | string | Optional commit message. Defaults to `Update <path> via Gentic`. |
7. Pricing
Pricing is pulled live from the Gentic MCP manifest. All prices are per call and deducted from your Gentic credits.
| Tool | Cost |
|---|---|
| github_append_file | Free |
| github_create_folder | Free |
| github_delete_file | Free |
| github_delete_folder | Free |
| github_find_file | Free |
| github_get_file | Free |
| github_list_files | Free |
| github_save_file | Free |
8. Notes
- Organization-scoped: the repo, owner, and branch come from the org's connected GitHub App installation (dashboard → Integrations → GitHub). The server only ever touches that repo, through that org's installation.
- One-click connect: there's no personal access token to paste or rotate. The only secret is the GitHub App's private key, which lives in gentic-mcp-server's environment and never reaches gentic-web, your agent, or the browser.
- Every write is a commit: save, append, create-folder, and delete all land as real commits on the repo's default branch, so the repo's git history is the audit log — with diffs and the ability to revert.
- Reads are verbatim: `github_get_file` returns the exact bytes in the repo — no synthesis or truncation.
- v1 connects one repo per org (whole tree), on the repo's default branch (captured at connect time). All GitHub tools are free.
- App permissions are Contents (read/write) + Metadata (read) — surfaced on GitHub's install screen when you connect.