Create GitHub profile and repository cards for READMEs, link previews and social posts.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
"Bearer " followed by an API key from https://githubcard.com/dashboard. Needed to create cards; templates, palettes and components work without it.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create (or reuse) a published card image for a GitHub profile or repository. Returns svg/png URLs and markdown/html embed snippets. Idempotent; counts once against the daily quota.
GitHub username (e.g. octocat) or owner/repo (e.g. octocat/hello-world)
a design document from get_template_design or get_card_design, possibly edited; replaces template and palette
which link to return as url: "svg" (default; best for README embeds) or "png". Both are always in urls
background palette id from list_palettes; omit for the template's own background. For any other colour use design
template id from list_templates; omit for the subject's default layout
false removes the watermark (Pro only; ignored on Free)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mcp https://githubcard.com/mcp
Headers
Authorization (optional, not in the config above): "Bearer " followed by an API key from https://githubcard.com/dashboard. Needed to create cards; templates, palettes and components work without it.Create (or reuse) a published card image for a GitHub profile or repository. Returns svg/png URLs and markdown/html embed snippets. Idempotent; counts once against the daily quota.
| Argument | Type | Description |
|---|---|---|
| design | object | a design document from get_template_design or get_card_design, possibly edited; replaces template and palette |
| format | string | which link to return as url: "svg" (default; best for README embeds) or "png". Both are always in urls |
| palette | string | background palette id from list_palettes; omit for the template's own background. For any other colour use design |
| subject* | string | GitHub username (e.g. octocat) or owner/repo (e.g. octocat/hello-world) |
| template | string | template id from list_templates; omit for the subject's default layout |
| watermark | boolean | false removes the watermark (Pro only; ignored on Free) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subject"
],
"properties": {
"design": {
"type": "object",
"description": "a design document from get_template_design or get_card_design, possibly edited; replaces template and palette",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"format": {
"type": "string",
"description": "which link to return as url: \"svg\" (default; best for README embeds) or \"png\". Both are always in urls"
},
"palette": {
"type": "string",
"description": "background palette id from list_palettes; omit for the template's own background. For any other colour use design"
},
"subject": {
"type": "string",
"description": "GitHub username (e.g. octocat) or owner/repo (e.g. octocat/hello-world)"
},
"template": {
"type": "string",
"description": "template id from list_templates; omit for the subject's default layout"
},
"watermark": {
"type": "boolean",
"description": "false removes the watermark (Pro only; ignored on Free)"
}
}
}Permanently delete one of the account's cards. Its links stop working everywhere they are embedded. Confirm with the user first.
| Argument | Type | Description |
|---|---|---|
| id* | string | card id from create_card or list_cards |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "card id from create_card or list_cards"
}
}
}Return the design document of one of the account's cards, to edit and re-submit through create_card as design (which creates a new card; the original is unchanged).
| Argument | Type | Description |
|---|---|---|
| id* | string | card id from create_card or list_cards |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "card id from create_card or list_cards"
}
}
}Return a template's layout as an editable design document (artboard + layers). Costs no quota. Edit it and pass it to create_card as design.
| Argument | Type | Description |
|---|---|---|
| palette | string | palette id to apply; replaces the template's background in the returned design |
| subject | string | username or owner/repo the card is for; decides profile vs repo layouts |
| template* | string | template id from list_templates |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"template"
],
"properties": {
"palette": {
"type": "string",
"description": "palette id to apply; replaces the template's background in the returned design"
},
"subject": {
"type": "string",
"description": "username or owner/repo the card is for; decides profile vs repo layouts"
},
"template": {
"type": "string",
"description": "template id from list_templates"
}
}
}Show the account's plan (free/pro) and how many cards it can still create today (cards.remaining, resets 00:00 UTC). The ai quota is reserved for future AI tools.
No arguments.
{
"type": "object",
"properties": {}
}List cards this account created through the API, most recently requested first. Paginated with nextCursor.
| Argument | Type | Description |
|---|---|---|
| limit | integer | page size 1-100 (default 20) |
| cursor | string | nextCursor from a previous call |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "page size 1-100 (default 20)"
},
"cursor": {
"type": "string",
"description": "nextCursor from a previous call"
}
}
}List the widget (layer) types a design can contain, with the scope (profile/repo) each fits.
No arguments.
{
"type": "object",
"properties": {}
}List background palette ids accepted by create_card.
No arguments.
{
"type": "object",
"properties": {}
}List card layouts with their ids, scope (profile/repo/all), size, widget types, and whether they need Pro.
| Argument | Type | Description |
|---|---|---|
| scope | string | profile or repo; omit for all. Results include scope=all templates, which fit both |
| widgets | array | only templates containing all of these widget types (from list_components) |
| freeOnly | boolean | only templates available on the Free plan |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"scope": {
"type": "string",
"description": "profile or repo; omit for all. Results include scope=all templates, which fit both"
},
"widgets": {
"type": "array",
"items": {
"type": "string"
},
"description": "only templates containing all of these widget types (from list_components)"
},
"freeOnly": {
"type": "boolean",
"description": "only templates available on the Free plan"
}
}
}Dry run of create_card with the same inputs: checks template/palette ids, Pro features and the design document, without creating anything or using quota. warnings lists layers that reach outside the artboard (they would be clipped); fix those before create_card.
| Argument | Type | Description |
|---|---|---|
| design | object | a design document from get_template_design or get_card_design, possibly edited; replaces template and palette |
| format | string | which link to return as url: "svg" (default; best for README embeds) or "png". Both are always in urls |
| palette | string | background palette id from list_palettes; omit for the template's own background. For any other colour use design |
| subject* | string | GitHub username (e.g. octocat) or owner/repo (e.g. octocat/hello-world) |
| template | string | template id from list_templates; omit for the subject's default layout |
| watermark | boolean | false removes the watermark (Pro only; ignored on Free) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subject"
],
"properties": {
"design": {
"type": "object",
"description": "a design document from get_template_design or get_card_design, possibly edited; replaces template and palette",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"format": {
"type": "string",
"description": "which link to return as url: \"svg\" (default; best for README embeds) or \"png\". Both are always in urls"
},
"palette": {
"type": "string",
"description": "background palette id from list_palettes; omit for the template's own background. For any other colour use design"
},
"subject": {
"type": "string",
"description": "GitHub username (e.g. octocat) or owner/repo (e.g. octocat/hello-world)"
},
"template": {
"type": "string",
"description": "template id from list_templates; omit for the subject's default layout"
},
"watermark": {
"type": "boolean",
"description": "false removes the watermark (Pro only; ignored on Free)"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.