Skip to content

BuiltOnRails

io.github.nauman/builtonrailsnaumanssev1.0.0Scanned

Stack intelligence from real production Rails apps. Compare gems, scan a Gemfile.

18 tools: 8 change things and 10 only read.

Tools: 0 delete, 0 irreversible, 8 write, 10 read.
  • Reads private data · 0
  • Reads text others write · 0
  • Can send data out · 3
  • No findings

Tools listed without sign-in. Remote posture

Anlyon alternative

8 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

18 tools

Changes things 8Claude Code: ask
  • admin_changelogADMIN ONLY - the feature/changelog ledger over MCP.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    ADMIN ONLY - the feature/changelog ledger over MCP. Requires an admin Bearer token. This is the source of truth for what shipped - log an entry here right after shipping something instead of hand-editing docs/changelog.md, so the record can't drift from reality. Entries left un-digested automatically get folded into the next Monday promotional digest (see admin_newsletters). Actions: 'list' shows recent entries (filter by category or digest status); 'create' logs a new entry (title, description, category, optional version); 'update' edits an entry by id; 'destroy' removes one.

    Annotations the server declares

    • title: Admin Changelog
    • readOnlyHint: false
    • openWorldHint: false
  • admin_moderationADMIN ONLY - moderate BuiltOnRails listings over MCP.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    ADMIN ONLY - moderate BuiltOnRails listings over MCP. Requires an admin Bearer token (Authorization header). Actions: 'pending' lists products awaiting review; 'approve' / 'reject' run the review lifecycle on a product slug; 'feature' / 'unfeature' toggle homepage featuring; 'stats' returns moderation counts. Params: action (required); slug (required for approve/reject/feature/unfeature); limit (pending only, default 10, max 50).

    Annotations the server declares

    • title: Admin Moderation
    • readOnlyHint: false
    • openWorldHint: false
  • admin_newsADMIN ONLY - batch-review the curated news queue (ContentItems behind /daily and the newsletter) over MCP.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    ADMIN ONLY - batch-review the curated news queue (ContentItems behind /daily and the newsletter) over MCP. Requires an admin Bearer token. Actions: 'queue' lists items awaiting review (filter by feed name or search term); 'select' / 'reject' batch-review by ids (array); 'stats' returns queue counts by status and top feeds. Typical flow: queue -> read titles -> select the good ids, reject the noise, in batches.

    Annotations the server declares

    • title: Admin News Review
    • readOnlyHint: false
    • openWorldHint: false
  • admin_newslettersADMIN ONLY - queue and send promotional/update newsletters over MCP.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    ADMIN ONLY - queue and send promotional/update newsletters over MCP. Requires an admin Bearer token. Each newsletter is only ever delivered once per subscriber, even across retries. The 'all_subscribed' segment is additionally throttled: it skips anyone who got a newsletter in the last 7 days or any email at all in the last 2 days, so promos never stack on top of other mail. Leaving an 'all_subscribed' newsletter as a draft (don't call send_now) queues it for the automatic weekly digest every Monday 10am, which folds all pending drafts into one combined email instead of several separate sends. Actions: 'list' shows recent newsletters with status and segment; 'segments' returns live, throttle-aware recipient counts for each segment so you can preview reach before sending; 'pending_digest' lists drafts currently queued for next Monday's digest; 'create' drafts a newsletter (subject, content, segment); 'update' edits a draft/scheduled newsletter's fields; 'send_now' sends immediately in the background instead of waiting for the digest; 'destroy' deletes a newsletter.

    Annotations the server declares

    • title: Admin Newsletters
    • readOnlyHint: false
    • openWorldHint: false
  • admin_sponsorsADMIN ONLY - manage site sponsors over MCP.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    ADMIN ONLY - manage site sponsors over MCP. Requires an admin Bearer token. Actions: 'list' shows sponsors with performance (impressions, clicks, CTR, running state); 'create' adds a manual sponsor (name, url, position, optional tagline/dates); 'update' changes fields on a sponsor by id; 'activate' / 'deactivate' toggle a sponsor; 'inquiries' lists sponsorship inquiries; 'inquiry_status' moves an inquiry through pending -> contacted -> converted/declined; 'orders' lists self-serve sponsor orders.

    Annotations the server declares

    • title: Admin Sponsors
    • readOnlyHint: false
    • openWorldHint: false
  • detect_stacksDetect technology stacks from a Gemfile, gemspec, package.json, or importmap.rb content.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Detect technology stacks from a Gemfile, gemspec, package.json, or importmap.rb content. Paste your dependency file content and get back matched stacks with real adoption data. The killer feature for coding agents — understand your project's stack landscape instantly.

    Annotations the server declares

    • title: Detect Stacks
    • readOnlyHint: true
    • openWorldHint: false
  • my_productOWNERS ONLY - manage your own products over MCP.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    OWNERS ONLY - manage your own products over MCP. Requires a write-scope Bearer token; you can only touch products you submitted or founded. Actions: 'list' shows your products; 'update' edits fields on one of your products (description, url, product_type, tags, github_repo_path); 'post_update' publishes a product update (title + update_type, optional content/url/version) shown on your product page; 'updates' lists a product's recent updates. Params: action (required); slug (required except for 'list').

    Annotations the server declares

    • title: My Product
    • readOnlyHint: false
    • openWorldHint: false
  • submit_productAdd a Rails application to BuiltOnRails so its stack becomes part of the data.Can send data outNo findings

    Why it is in this group

    • The name "submit_product" says "submit": a word for a change.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Add a Rails application to BuiltOnRails so its stack becomes part of the data. The product is created with 'pending' status and goes through admin approval. Attach stacks by name, or paste your Gemfile / package.json / importmap.rb content and the real stack is detected and attached automatically - the recommended path.

    Annotations the server declares

    • title: Submit Product
    • readOnlyHint: false
    • openWorldHint: false
Only reads 10Show 10 read-only tools
  • compare_stacksCompare two technology stacks head-to-head with real adoption data.No findings

    Why it is in this group

    • The name "compare_stacks" says "compare": a word for reading.
    Description, as the server wrote it
    Compare two technology stacks head-to-head with real adoption data. Returns products count, GitHub stars, collections, growth trends, and a winner. Uses the same scoring algorithm as the BuiltOnRails Stack Showdown feature.

    Annotations the server declares

    • title: Compare Stacks
    • readOnlyHint: true
    • openWorldHint: false
  • get_categoriesGet all available stack categories with descriptions and stack counts.No findings

    Why it is in this group

    • The name "get_categories" says "get": a word for reading.
    Description, as the server wrote it
    Get all available stack categories with descriptions and stack counts. Useful for understanding what types of technologies are tracked and filtering searches.

    Annotations the server declares

    • title: Get Categories
    • readOnlyHint: true
    • openWorldHint: false
  • get_collectionGet a curated stack collection by slug.No findings

    Why it is in this group

    • The name "get_collection" says "get": a word for reading.
    Description, as the server wrote it
    Get a curated stack collection by slug. Collections are hand-picked sets of technology stacks with notes and optional LLM prompts for AI context. Returns the collection with all stacks in order, notes, and the LLM prompt if available.

    Annotations the server declares

    • title: Get Collection
    • readOnlyHint: true
    • openWorldHint: false
  • get_newsRead curated Rails ecosystem news and articles - the same pipeline behind builtonrails.com/daily.No findings

    Why it is in this group

    • The name "get_news" says "get": a word for reading.
    Description, as the server wrote it
    Read curated Rails ecosystem news and articles - the same pipeline behind builtonrails.com/daily. Returns recent items (title, url, summary, category, source). Filter by category (article, release, podcast, video, news), a specific date (YYYY-MM-DD), or a search term. Use this for 'what's new in Rails', release announcements, and article discovery.

    Annotations the server declares

    • title: Rails News
    • readOnlyHint: true
    • openWorldHint: false
  • get_productGet detailed information about a specific production Rails application.No findings

    Why it is in this group

    • The name "get_product" says "get": a word for reading.
    Description, as the server wrote it
    Get detailed information about a specific production Rails application. Returns full product details including description, tags, member, stacks, and vote count.

    Annotations the server declares

    • title: Get Product
    • readOnlyHint: true
    • openWorldHint: false
  • get_products_using_stacksFind real Rails applications that use specific technology stacks.No findings

    Why it is in this group

    • The name "get_products_using_stacks" says "get": a word for reading.
    Description, as the server wrote it
    Find real Rails applications that use specific technology stacks. Returns approved products using ALL specified stacks, with their full stack lists and vote counts. Great for finding real-world examples of specific tech stack combinations.

    Annotations the server declares

    • title: Products Using Stacks
    • readOnlyHint: true
    • openWorldHint: false
  • get_stack_recommendationsGet stack recommendations based on what real Rails apps use together.No findings

    Why it is in this group

    • The name "get_stack_recommendations" says "get": a word for reading.
    Description, as the server wrote it
    Get stack recommendations based on what real Rails apps use together. Given your current stacks, recommends the most popular stacks in a target category based on co-occurrence in production Rails applications. Available categories: Framework, Database, Frontend, Background, Search, Auth, Payments, DevOps, Testing, Analytics, LLM, AI/ML, Observability, Security, Email.

    Annotations the server declares

    • title: Stack Recommendations
    • readOnlyHint: true
    • openWorldHint: false
  • search_productsSearch real production Rails applications and the stacks they actually run.No findings

    Why it is in this group

    • The name "search_products" says "search": a word for reading.
    Description, as the server wrote it
    Search real production Rails applications and the stacks they actually run. Returns approved products with name, URL, type, votes, and stacks. Filter by product type or sort by votes/newest.

    Annotations the server declares

    • title: Search Products
    • readOnlyHint: true
    • openWorldHint: false
  • search_stacksSearch for technology stacks (gems, frameworks, services) used by Rails applications.No findings

    Why it is in this group

    • The name "search_stacks" says "search": a word for reading.
    Description, as the server wrote it
    Search for technology stacks (gems, frameworks, services) used by Rails applications. Returns matching stacks with real adoption data including product counts, GitHub stars, and category. Available categories: Framework, Database, Frontend, Background, Search, Auth, Payments, DevOps, Testing, Analytics, LLM, AI/ML, Observability, Security, Email.

    Annotations the server declares

    • title: Search Stacks
    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or untrusted-input.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out3
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Remote posture

What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.

Tools listed without sign-in

Looked at Oct 22, 2026, 15:03 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.

Reachable
yes
HTTP status of an anonymous initialize
200
tools/list served without credentials
yes
Tools that change things, listed without credentials
8
Protocol version
2024-11-05
WWW-Authenticate on 401
not observed
resource_metadata in WWW-Authenticate
not observed
RFC 9728 protected resource metadata
not observed
Authorization servers
not observed
Legacy HTTP+SSE transport
yes
Dynamic client registration
not observed
Client ID metadata documents
not observed
  • WarnThe whole server

    The endpoint served tools/list without credentials, and the list has 8 tools that change things (8 write). Whether a call also works without credentials was not tested: tools are never called.

    Matched text

    https://builtonrails.com/mcp/sse: tools/list returned 18 tools to an anonymous client, including submit_product (write), my_product (write), detect_stacks (write), admin_sponsors (write), admin_newsletters (write) and 3 more

    What this check looks for

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport sse builtonrails https://builtonrails.com/mcp/sse
claude mcp add --transport sse builtonrails https://builtonrails.com/mcp/sse

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__builtonrails__search_stacks",
      "mcp__builtonrails__search_products",
      "mcp__builtonrails__get_stack_trends",
      "mcp__builtonrails__get_stack_recommendations",
      "mcp__builtonrails__get_products_using_stacks",
      "mcp__builtonrails__get_product",
      "mcp__builtonrails__get_news",
      "mcp__builtonrails__get_collection",
      "mcp__builtonrails__get_categories",
      "mcp__builtonrails__compare_stacks"
    ],
    "ask": [
      "mcp__builtonrails__submit_product",
      "mcp__builtonrails__my_product",
      "mcp__builtonrails__detect_stacks",
      "mcp__builtonrails__admin_sponsors",
      "mcp__builtonrails__admin_newsletters",
      "mcp__builtonrails__admin_news",
      "mcp__builtonrails__admin_moderation",
      "mcp__builtonrails__admin_changelog"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as builtonrails. Review it before you use it.

Capability tags behind 3 rules
  • mcp__builtonrails__submit_product outbound
  • mcp__builtonrails__my_product outbound
  • mcp__builtonrails__admin_sponsors outbound

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.github.nauman/builtonrails/verify?hash=775e2760506f73ac3a41403633bcfe5b3b0254bd2453fd5688c314ddcbccbd62" | jq -e '.changed == false'

Pinned hash 775e2760506f, from Oct 21, 2026, 19:30 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.github.nauman/builtonrails/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.github.nauman/builtonrails
[![anlyon.dev](https://anlyon.dev/badge/io.github.nauman/builtonrails.svg)](https://anlyon.dev/servers/io.github.nauman/builtonrails)

Source: MCP Registry. Synced Oct 21, 2026, 18:42 UTC.