Skip to main content
Glama

godly-mcp

Godly (now Recent Design), right inside Claude. Search design references, browse the feeds, pull palettes as hex and watch motion frame by frame without leaving the chat.

MCP Node License: MIT


Godly was the go-to gallery for websites with bold animation and interaction. It now lives at recent.design (godly.website redirects there) and grew into a daily feed of interface, motion, branding and web work picked from X, plus recorded websites, launch videos, OG images, App Store screenshots, app icons, tools and agent skills.

This MCP server turns all of that into tools Claude (or any MCP client) calls on its own. It reads the same public, read-only API the site itself uses. No login, no saved items, no account data.

Tools

Tool

What it does

godly_search

Full-text search over titles, descriptions, creators and tags (dark, 3d, scroll-animation, microinteraction, saas...). Filters by feed, category, tag and video-only.

godly_browse

Live listing of a feed, sorted by recent, popular or staff picks, with category/tag filters and pagination.

godly_get

Full details of one item: description, creator and original post/site, tags grouped by kind (color, style, interaction, framework...), palette as hex with screen share, media list, and pricing/links/install command for tools and skills.

godly_taxonomy

Every category (with post counts) and every tag grouped by kind, to use as filters.

godly_media

Shows the reference to the model: the still of each media, and with frames > 0 it downloads the video and returns N frames spread over it (needs ffmpeg). Nothing is kept on disk unless save: true.

godly_status

Checks the API, the local index and ffmpeg. refresh: true rebuilds the index.

Inputs accept a recent.design/i/<id>-<slug> URL, an old godly.website link, the 7-character id or the slug.

Related MCP server: Niblet

Feeds

x (design posts from X), websites (recorded sites, the classic Godly), launch-videos, og-images, app-store-screenshots, app-icons, tools, skills.

Install

Requires Node 18+. ffmpeg is optional (only for frames).

git clone https://github.com/G4rutti/godly-mcp.git
cd godly-mcp
npm install

Claude Code

claude mcp add godly -- node /absolute/path/to/godly-mcp/src/server.js

Claude Desktop / Cursor / any stdio client

{
  "mcpServers": {
    "godly": {
      "command": "node",
      "args": ["/absolute/path/to/godly-mcp/src/server.js"]
    }
  }
}

Example prompts

find me dark portfolio sites with 3d on godly
show me how this animates: https://recent.design/i/6wmr7uw-nothing-to-watch
staff picks from the websites feed this week, and pull the palette of the best one

How search works

The API has no text search, so on first use the server pages through every feed once (about 20 requests, spaced out) and keeps a local index at ~/.godly-mcp/index.json. It refreshes after 12 hours. Every search after that is instant and offline.

Configuration

Variable

Default

GODLY_MEDIA_DIR

~/godly-media

Where godly_media saves when save: true

GODLY_INDEX

~/.godly-mcp/index.json

Index file

GODLY_INDEX_TTL_H

12

Hours before the index is rebuilt

GODLY_UA

godly-mcp/<version>

User-Agent sent to the API

Being a good citizen

Recent Design's robots.txt allows use as reference and forbids AI training (Content-Signal: search=yes, ai-train=no, use=reference). This server only fetches on demand when you ask, spaces its requests, caches, identifies itself with an honest User-Agent and credits the creator in every response. Don't use it to train models or to copy someone's work 1:1: use it to study and build something of your own, and credit the original.

Not affiliated with Godly or Recent Design. If the site changes its API, the tools will return an error until the client is updated.

Development

npm run check   # boots the server over stdio and calls every tool against the live API

License

MIT

Available Tools

6 tools
godly_browseNavegar um feedA

Lista ao vivo um feed do Godly/Recent Design na ordem do site (recentes, populares ou staff picks), com filtro de categoria/tag e paginação. x = posts de design garimpados do X (interface, motion, branding, web...), websites = sites gravados em vídeo (o Godly clássico), launch-videos, og-images, app-store-screenshots, app-icons, tools, skills.

NameRequiredDescriptionDefault
tagNoSlug de tag, ex: '3d', 'dark', 'transitions'
feedNox
sortNostaff = staff picksrecent
limitNo
cursorNonext_cursor da página anterior
categoryNoSlug de categoria (godly_taxonomy)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden: "Lista ao vivo" correctly signals a live, read-only listing operation, and pagination is mentioned so the agent knows results are paged. It stops short of stating that nothing is mutated, whether results are cached/real-time, what a returned post contains, or any rate/auth constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose/ordering/filtering before the enum glossary, and no filler. The trailing enumeration of feed values is compact and functional, though the one-word entries at the end are terse enough to border on schema repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, no-annotation, no-output-schema tool, the description covers what is listed, how it is ordered, how it is filtered, and that it paginates. It leaves out the return payload shape and any operational caveats, which an agent would need to chain calls to godly_get or godly_media reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The second sentence does real work the schema cannot: it explains that "x" means design posts mined from X and "websites" means sites recorded as video (classic Godly), and it maps the sort values to recent/popular/staff picks. Tag and category are mentioned as filters, but their slug distinction is left mostly to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Lista ao vivo um feed do Godly/Recent Design" names a clear verb (list) and resource (feed), and the parenthetical enumerates the three orderings, so the agent knows exactly what data comes back. It never names godly_search or godly_get, so the browse-vs-search boundary is left implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: this is the tool to hit when you want an ordered, paginated feed filtered by tag/category, which is implicitly different from searching. However, there is no explicit "use this instead of X when…" statement, no exclusions, and no guidance on when a feed browse versus a taxonomy lookup (godly_taxonomy) is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

godly_getDetalhes de um itemA

Detalhes completos de um item: descrição, criador e link do post/site original, tags por tipo (cor, estilo, interação, framework...), PALETA extraída (hex + % da tela), lista de mídias (vídeo/imagem) e, em tools/skills, preço, links e comando de instalação. Aceita URL recent.design/i/..., URL antiga do godly, id (7 letras) ou slug.

NameRequiredDescriptionDefault
targetYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the behavioral burden. It does useful work by disclosing the shape of the response (palette with hex + screen percentage, media types, conditional tool/skill fields), which substitutes for the missing output schema, but it never states that the operation is read-only, what happens on a bad id/slug, or whether anything is fetched remotely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the payload enumeration and ending with the accepted input forms. Dense but every clause adds information; the parenthetical tag categories are slightly list-heavy yet still earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description steps in by enumerating returned fields and the accepted identifier formats, which is most of what an agent needs for a single-parameter lookup. Remaining gaps are failure behavior and sibling routing, both minor for a read-only detail fetch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 0% schema description coverage, so the description must compensate, and it does: it spells out that 'target' accepts a recent.design/i/... URL, a legacy godly URL, a 7-letter id, or a slug. That is genuinely additive meaning the bare string schema lacks, though no format precedence or validation rules are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Detalhes completos de um item') and then enumerates exactly what those details contain: description, creator, original link, tags by type, extracted palette, media list, and for tools/skills price, links and install command. An agent knows precisely what comes back. It does not name which sibling to use instead (e.g. godly_media for media-only), so it stops short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the enumerated payload makes clear this is the call for full detail on one known item, and the accepted input formats imply the item must already be identified. There is no explicit 'use this when X, use godly_media/godly_search when Y' routing against the five siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

godly_mediaVer a referênciaA

Mostra a referência pro modelo: baixa o still (poster do vídeo ou a imagem) de cada mídia do item e devolve como imagem. Pra motion, peça frames > 0: baixa o vídeo e tira N frames espalhados (precisa de ffmpeg). Por padrão nada fica no disco; save=true guarda em ~/godly-media/.

NameRequiredDescriptionDefault
dirNoPasta pra salvar (padrão ~/godly-media)
saveNoGuardar stills, vídeos e frames no disco
framesNoFrames de cada vídeo (0 = só o still)
targetYesURL, id ou slug do item
max_mediaNoQuantas mídias do item olhar

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does well: it discloses that files are downloaded, that frames extraction requires ffmpeg (an external dependency), that nothing is persisted by default, and that save=true writes to ~/godly-media/<id>. It omits what happens when ffmpeg is absent or how large responses/images are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action, then the motion variant, then the persistence rule. Every clause conveys a distinct operational fact, though the mix of Portuguese prose with English keywords is slightly dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and no output schema, the description covers the mechanic, side effects, and external dependency well. The remaining gap is failure behavior (missing ffmpeg, items with no media), which is minor but would matter for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so 3 is the baseline, but the description adds real meaning: frames > 0 implies downloading the video and sampling N spread-out frames with ffmpeg, and save=true implies writing stills/videos/frames to ~/godly-media/<id>. This goes beyond the schema's terse field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: downloads the still (video poster or image) for each media of an item and returns it as an image, plus a frames mode for video. An agent can tell this is a visual-reference fetcher, distinct from godly_get's data retrieval, though the description never names the sibling it replaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear conditional rule for the frames mode ('Pra motion, peça frames > 0') and implies the default still-only path, but says nothing about when to choose this tool over godly_get or godly_browse, nor what to do when an item has no media.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

godly_statusStatusA

Checa se a API do Recent Design responde, o estado do índice local e se o ffmpeg está instalado. refresh=true reconstrói o índice.

NameRequiredDescriptionDefault
refreshNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose a real side effect — that refresh=true rebuilds the local index — which is genuinely useful behavioral context. However, it omits whether the rebuild is expensive or blocking, whether it needs permissions, and what the check result looks like beyond the three enumerated items.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler: the first front-loads what is checked, the second explains the one parameter that changes behavior. Nothing is redundant or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-optional-parameter diagnostic tool with no output schema, the description covers what is checked and the one mutating option, which is enough to call it correctly. Minor gap: it never indicates the shape of the returned status (e.g., per-check pass/fail), which an agent may need to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it explains that 'refresh=true' rebuilds the index, giving the boolean a concrete meaning beyond type and default. It does not spell out the false/default behavior explicitly, so the addition is good but not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Checa') and enumerates three concrete resources checked: the Recent Design API's responsiveness, the local index state, and whether ffmpeg is installed. This clearly identifies it as a diagnostic/health tool, implicitly distinguishing it from the data-oriented siblings (search, browse, get, taxonomy, media), though it never says so explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a pre-flight/diagnostic check, but the description never states when to call it (e.g., before search/browse operations, or when a sibling fails) or when not to. The only conditional guidance present concerns the parameter ('refresh=true reconstrói o índice'), not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

godly_taxonomyCategorias e tagsA

Lista as categorias (com quantos posts) e as tags existentes agrupadas por tipo (color, style, interaction, type, framework, component...), pra usar como filtro em godly_search e godly_browse.

NameRequiredDescriptionDefault
feedNoRestringe as tags às do feed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the burden, and it does disclose the return content: categories with post counts and tags grouped by type. 'Lista' implies a non-mutating read, though it never says so outright, and there is no mention of caching or whether the tag list is exhaustive (the trailing '...' leaves that open).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and resource, with the downstream purpose at the end where it belongs. The open-ended 'component...' enumeration is the only soft spot, slightly blurring whether the listed types are complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single optional-parameter discovery tool with no output schema, the description adequately covers both what comes back and what to do with it. It leaves the feed-scoping behavior unexplained, which matters given the one parameter it accepts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'feed' parameter is an enum with its own description, so the schema already does the work. The description adds no information about the feed filter, only about the tag-type grouping, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lista as categorias ... e as tags') plus the exact shape of the payload (categories with post counts, tags grouped by type). The named tag-type examples (color, style, interaction, framework, component) make it unmistakable against siblings like godly_search and godly_browse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly positions the tool as a precursor: the values returned are 'pra usar como filtro em godly_search e godly_browse'. That tells an agent when to call it instead of the search tools. It stops short of stating exclusions or prerequisites (e.g. whether the taxonomy is static or feed-dependent).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedgodly_browse
    • First observedgodly_get
    • First observedgodly_media
    • First observedgodly_search
    • First observedgodly_status
    • First observedgodly_taxonomy

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation4/5

The pair godly_search and godly_browse is the only real overlap, and the descriptions work hard to separate them (text/tag matching vs. a live site-ordered feed with pagination). godly_get vs godly_media is clearly split between metadata/text and actually surfacing images or extracted frames, and taxonomy/status are unambiguous helpers.

Naming Consistency4/5

All six tools use a uniform godly_ prefix, giving a predictable namespace. The second word mixes verbs (search, browse, get) with nouns (taxonomy, status, media), but each name is short, readable, and clearly maps to its operation.

Tool Count5/5

Six tools is well-scoped for a read-only design-reference lookup service: discovery (taxonomy, search, browse), retrieval (get, media), and diagnostics (status) each earn their place. Nothing feels padded or missing at the count level.

Completeness4/5

The surface covers the full read lifecycle: filters, search, live feed, item details, media extraction, and health/index rebuilding. Minor gaps exist, such as no explicit pagination on search or a related/similar-items lookup, but agents can work around these via browse and tag filters.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to search apps, screens, flows, site sections, and collections, and capture them into a project-aware local reference store for reuse through skills, MCP tools, prompts, contact sheets, and exports.
    34 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that lets coding agents ground UI work in real product screens by fetching one to three reference screens as inline images for a specific layout, state, or interaction question, and by looking up fonts, icons, or animated icons together with their recorded licenses. It also returns the full or selected design reference—overview, colors, typography, components, and provenance—for any web screen already picked.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables searching public UI design libraries (Refero, Mobbin, ScreensDesign, Dribbble) for real app and website screens, downloading them into a category-organized local library that can be searched offline, and capturing screenshots of any web page with a real browser. Works from any MCP client or as a standalone CLI.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables coding agents to query a private, curated design reference library over MCP, retrieving approved screenshots alongside the owner's take-and-avoid notes, marked component regions, and brand kits with colors, typography and CSS. Supports ranked recommendations by design brief, filtered search, and component lookup so agents can ground their implementation choices in saved preferences.
    MIT