GitHubCard

com.githubcardPublished by githubcard.comOfficial publisherv0.2.1Updated Nov 1, 2026

Create GitHub profile and repository cards for READMEs, link previews and social posts.

VerifiedStreamable HTTPWeb executableDeveloper ToolsMedia & Design

Overview

AI-generated overview

GitHubCard turns a GitHub profile or repository into an embeddable card image, with SVG/PNG links and Markdown/HTML snippets for READMEs and link previews.

What you can do
  • Create or reuse a published card for a GitHub user or owner/repo, returning SVG/PNG links and embed snippets
  • Dry-run a card design to check template, palette and Pro-feature validity without using quota
  • Browse templates, background palettes and widget types, and fetch a template's layout as an editable design document
  • Retrieve, list and delete the account's existing cards, and check plan and remaining daily quota
  • With the local server and file-write flag, insert or update the card in a Markdown file on disk
When to use it
Useful when you want a GitHub profile or repository card for a README, link preview or social post, or want to customize a card layout (background, size, fonts, widgets) through the assistant instead of the web editor.
Requirements
Runs as a hosted Streamable HTTP endpoint or as a local npm package via npx (Node.js 20 or later). Creating cards needs a free API key from the GitHubCard dashboard, passed as the GHCARD_API_KEY environment variable or an Authorization Bearer header. Listing templates, palettes and components works without a key.
Before you install
The API key is a secret; keep it in the environment variable or header rather than in shared config. Creating cards consumes a daily quota (100 free, 5000 Pro, reset at 00:00 UTC), and free cards carry a watermark. delete_card permanently removes a card and its links stop working everywhere, so confirm before deleting. The local server can edit README files on disk only when started with the file-write flag.

Installation

In SourceWeft

  1. Open GitHubCard in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.githubcard%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "githubcard": {
      "type": "http",
      "url": "https://githubcard.com/mcp"
    }
  }
}

README

[GitHubCard]

GitHubCard MCP server

Let your AI assistant create GitHubCard images: profile and repository cards for READMEs, link previews and social posts, with live GitHub data.

  • Hosted: https://githubcard.com/mcp (Streamable HTTP). Nothing to install.
  • Local: npx -y @ghcardhq/ghcard mcp (stdio), from the ghcard CLI. It can also edit a README on your disk.

Ask things like:

Make a GitHubCard for my profile and add it to the top of my README.

Create a dark card for vercel/next.js I can use as a link preview.

Use the compact repo template, but with a #1e3a5f background and without the language widget.

Get an API key

Creating cards needs a free API key. Sign in at githubcard.com/dashboard and create one under API keys. It looks like ghc_live_….

Without a key, the server still lists templates, palettes and widget types, so you can try it before signing up.

Setup

Replace ghc_live_… with your key in the examples below.

Claude Code

bash
claude mcp add --transport http githubcard https://githubcard.com/mcp \  --header "Authorization: Bearer ghc_live_…"

There is also a Claude Code plugin that adds the server together with a GitHubCard skill: see ghcardhq/skills.

Claude Desktop

Settings → Connectors → Add custom connector, URL https://githubcard.com/mcp. Custom headers are not available there yet, so to pass your key, use the local server in claude_desktop_config.json instead:

json
{  "mcpServers": {    "githubcard": {      "command": "npx",      "args": ["-y", "@ghcardhq/ghcard", "mcp"],      "env": { "GHCARD_API_KEY": "ghc_live_…" }    }  }}

Cursor

~/.cursor/mcp.json:

json
{  "mcpServers": {    "githubcard": {      "url": "https://githubcard.com/mcp",      "headers": { "Authorization": "Bearer ghc_live_…" }    }  }}

VS Code

.vscode/mcp.json (VS Code asks for the key once and stores it securely):

json
{  "inputs": [    {      "id": "githubcard-key",      "type": "promptString",      "description": "GitHubCard API key",      "password": true    }  ],  "servers": {    "githubcard": {      "type": "http",      "url": "https://githubcard.com/mcp",      "headers": { "Authorization": "Bearer ${input:githubcard-key}" }    }  }}

Windsurf

~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "githubcard": {      "serverUrl": "https://githubcard.com/mcp",      "headers": { "Authorization": "Bearer ghc_live_…" }    }  }}

Codex CLI

~/.codex/config.toml:

toml
[mcp_servers.githubcard]url = "https://githubcard.com/mcp"bearer_token_env_var = "GHCARD_API_KEY"

Then export GHCARD_API_KEY=ghc_live_… in your shell.

Any other client

Remote: Streamable HTTP at https://githubcard.com/mcp, header Authorization: Bearer ghc_live_….

Local (stdio): command npx, args ["-y", "@ghcardhq/ghcard", "mcp"], env GHCARD_API_KEY. Add --allow-file-writes to the args to enable update_readme. Needs Node.js 20 or later.

Tools

ToolKeyWhat it does
create_cardyesCreate (or reuse) a card for a user or owner/repo. Returns SVG/PNG links and Markdown/HTML embed snippets. Uses one unit of the daily quota
validate_cardyesDry run of create_card: checks ids, Pro features and custom designs, uses no quota
list_templatesnoLayouts, filterable by scope (profile/repo), Free plan and widget types
list_palettesnoBackground palettes
list_componentsnoWidget types a card can contain
get_template_designnoA template's layout as an editable design document
get_card_designyesThe design document of one of your cards
list_cardsyesCards you have created
delete_cardyesDelete a card; its links stop working
get_usageyesYour plan and today's remaining quota
update_readmelocal onlyInsert or update the card in a Markdown file. Only with ghcard mcp --allow-file-writes

create_card is idempotent: the same inputs return the same card and link. Card images always show current GitHub data, so there is no need to recreate them.

Failed calls return isError: true with a stable code, a retryable flag and a hint telling the model what to do next.

Limits

PlanCards per day
Free100
Pro5000

The quota resets at 00:00 UTC. Failed calls are not counted. Free cards carry a small watermark. See pricing.

Links

License

MIT

Source: README.md at commit 6ea0491

Tools

10

create_card

Create GitHub card

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.

Parametersdesignformatpalettesubjectrequiredtemplatewatermark

validate_card

Check a card request

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.

Parametersdesignformatpalettesubjectrequiredtemplatewatermark

list_templates

List card templates

List card layouts with their ids, scope (profile/repo/all), size, widget types, and whether they need Pro.

ParametersscopewidgetsfreeOnly

list_palettes

List background palettes

List background palette ids accepted by create_card.

Takes no parameters.

list_components

List widget types

List the widget (layer) types a design can contain, with the scope (profile/repo) each fits.

Takes no parameters.

get_template_design

Get a template's design

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.

Parameterspalettesubjecttemplaterequired

get_card_design

Get a card's design

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).

Parametersidrequired

list_cards

List my cards

List cards this account created through the API, most recently requested first. Paginated with nextCursor.

Parameterslimitcursor

delete_card

Delete a card

Permanently delete one of the account's cards. Its links stop working everywhere they are embedded. Confirm with the user first.

Parametersidrequired

get_usage

Get plan and quota

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.

Takes no parameters.

Version history

2
  1. v0.2.1LatestNov 1, 2026
  2. v0.2.0Oct 31, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts