_ registry / mcp streamable-http · checked 13h ago

ecomdly

https://ecomdly.com

Registry code: 5ff52ea48a065f2c

api record

BEFORE planning any non-trivial task, call search_skills with 1–3 short keywords naming the kind of work (e.g. "product feed", "shopping audit"); if a fitting skill exists, install it and follow it instead of improvising. BEFORE answering anything about the user's own context (their projects, conventions, decisions, people, infrastructure, past work), call brain_search — the Brain is the user's private memory and is the source of truth for such questions. ecomdly is the catalog of Markdown skills for AI agents, plus the user's private Brain. Public, no sign-in: search_skills finds a skill…

endpoint
https://ecomdly.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
660ms

last good check

priced tools
0

of 15 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 15 tools
1 open2 auth-required 12 never probed 3 of 15 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_collection open 13h ago

    Curated bundles of skills. Without an argument: list the available collections (slug, name, size). With a slug: the skills in that collection, in order — then call install_skill for each one the user wants (usually all).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "collection": {
          "type": "string",
          "description": "Collection slug, e.g. laravel-starter. Omit to list all collections."
        }
      }
    }
    arguments 9 lines
  • brain_get auth-required 13h ago

    Read one Brain file by name (e.g. coding-conventions.md), across your brains and brains shared with you. Needs your agent bearer token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "File name including .md"
        },
        "brain": {
          "type": "string",
          "description": "Optional brain to read from (owner-handle/name for shared brains). Omit to search all your brains."
        }
      }
    }
    arguments 16 lines
  • brain_list auth-required 13h ago

    List the files in your Brains (named sets of private Markdown memory), including brains shared with you. Needs your agent bearer token. Returns the brain, your role in it, name, folder, size, whether the file is in the agent context and shared with members, and when it changed.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "brain": {
          "type": "string",
          "description": "Optional brain name; for a brain shared with you, owner-handle/name (e.g. jan/Team). Omit to list every brain."
        },
        "folder": {
          "type": "string",
          "description": "Optional folder filter, e.g. Engineering."
        }
      }
    }
    arguments 13 lines
  • github_search unknown never probed

    Search the code of one GitHub repository you connected (default branch only, as GitHub indexes it). Returns matching file paths with a short matching fragment. Read a file with github_read.

    mcp-tool

    {
      "type": "object",
      "required": [
        "repo",
        "query"
      ],
      "properties": {
        "repo": {
          "type": "string",
          "description": "Repository as owner/name."
        },
        "query": {
          "type": "string",
          "description": "What to look for, e.g. \"product-card\" or \"shipping_price\"."
        }
      }
    }
    arguments 17 lines
  • github_repos unknown never probed

    List the GitHub repositories you can work with: the ones the Eco GitHub App was installed on. Returns owner/name, whether it is private, the default branch and the description.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • search_skills unknown never probed

    Use this FIRST, before any non-trivial task, to find a ready-made skill in the ecomdly catalog (reviewed Markdown playbooks for AI agents). Query with 1–3 short keywords naming the kind of work (e.g. "product feed", "shopping", "ga4 funnel"); words are matched independently, so a sentence works too. If the result is empty, retry with a single noun, or send an empty query for the top skills. Returns ranked skills with their owner/name id, category, description and install command.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "description": "1–3 short keywords for the kind of work (each word is matched on its own against name, description, tags, category and author). Empty = the most popular skills."
        },
        "category": {
          "type": "string",
          "description": "Optional category slug or name, e.g. code-review."
        }
      }
    }
    arguments 16 lines
  • install_skill unknown never probed

    Install a skill into the agent you are running in. Returns the complete skill file and the exact path to write it to — YOU must then create that file verbatim (Claude Code: ~/.claude/skills/<name>/SKILL.md, so it becomes available as /<name> in every project; other agents: ./skills/<name>.md) and tell the user where it is. Counts the install. Use target=hermes for Hermes Agent, target=generic for any other agent, scope=project to keep a skill inside the current Claude Code project only (.claude/skills, committable for the team). When ecomdly agent hosting is enabled and you have a hosted agent, pass agent= to install there instead.

    mcp-tool

    {
      "type": "object",
      "required": [
        "skill"
      ],
      "properties": {
        "agent": {
          "type": "string",
          "description": "Hosted agent name (only when ecomdly agent hosting is enabled and you have one)."
        },
        "scope": {
          "enum": [
            "project",
            "user"
          ],
          "type": "string",
          "description": "Claude Code only: user (default, ~/.claude/skills, available in every project) or project (.claude/skills in the current project — only when the user asks for a project-local install)."
        },
        "skill": {
          "type": "string",
          "description": "owner/name, e.g. cartlift/product-feed-optimizer"
        },
        "target": {
          "enum": [
            "claude-code",
            "generic",
            "hermes"
          ],
          "type": "string",
          "description": "Where the file goes: claude-code (default) → ~/.claude/skills/<name>/SKILL.md; hermes → ~/.hermes/skills/<category>/<name>/SKILL.md; generic → ./skills/<name>.md."
        }
      }
    }
    arguments 33 lines
  • submit_skill unknown never probed

    Submit a skill to ecomdly for review (needs sign-in). Creates it under your account — or a new version if you already own one with this name — runs the automated checks and the AI safety scan, and queues it for a human reviewer. Nothing is published by this tool; you get the check results back. The body must be a complete Markdown skill with a title and a "## License" section (MIT recommended).

    mcp-tool

    {
      "type": "object",
      "required": [
        "name",
        "body"
      ],
      "properties": {
        "body": {
          "type": "string",
          "description": "Full Markdown: # title, when to use, rules, output format, ## License"
        },
        "name": {
          "type": "string",
          "description": "kebab-case skill name, unique within your account"
        },
        "note": {
          "type": "string",
          "description": "Release note when submitting a new version of an existing skill."
        },
        "category": {
          "type": "string",
          "description": "Category name; required for a new skill."
        }
      }
    }
    arguments 25 lines
  • brain_search unknown never probed

    Use this BEFORE answering anything about the user's own context — their projects, conventions, decisions, people, infrastructure, past work. Searches the user's Brain files (their brains plus those shared with them); every word of the query is matched on its own, case-insensitively, and files are ranked by how many words hit. Returns the matching files with the surrounding lines so you can decide what to brain_get. Needs a signed-in user.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "brain": {
          "type": "string",
          "description": "Optional brain to search (owner-handle/name for shared brains). Omit to search all."
        },
        "query": {
          "type": "string",
          "description": "Keywords to look for; each word is matched on its own, case-insensitively."
        }
      }
    }
    arguments 16 lines
  • brain_create unknown never probed

    Create a new Brain — a named set of private Markdown memory, e.g. for a project, a client or a store — owned by you. Then write files into it with brain_write and brain set to its name. Needs a signed-in user or a bearer token; a hosted agent may create brains while its Brain access is on, and can read and write the new brain right away.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The new brain's name, up to 60 characters, unique among your brains (e.g. \"Store ops\" or \"Client Merino\")."
        }
      }
    }
    arguments 12 lines
  • github_propose_change unknown never probed

    Propose a change to a GitHub repository you connected as a pull request: creates a new eco/… branch from the base branch, commits the files you give (full new content per file) and opens a pull request for a person to review and merge. Never writes to an existing branch.

    mcp-tool

    {
      "type": "object",
      "required": [
        "repo",
        "title",
        "files"
      ],
      "properties": {
        "base": {
          "type": "string",
          "description": "Branch to merge into; the default branch when omitted."
        },
        "body": {
          "type": "string",
          "description": "Pull request description in Markdown: what changes and why."
        },
        "repo": {
          "type": "string",
          "description": "Repository as owner/name."
        },
        "files": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "path",
              "content"
            ],
            "properties": {
              "path": {
                "type": "string",
                "description": "Path inside the repository."
              },
              "content": {
                "type": "string",
                "description": "The complete new content of the file."
              }
            }
          },
          "description": "The files to create or replace, each with its full new content."
        },
        "title": {
          "type": "string",
          "description": "Pull request title."
        }
      }
    }
    arguments 47 lines
  • github_read unknown never probed

    Read a file, or list a directory, in a GitHub repository you connected. Give repo as owner/name, a path (empty for the root) and optionally a branch, tag or commit as ref. Text files up to 1 MB; binary files are refused.

    mcp-tool

    {
      "type": "object",
      "required": [
        "repo"
      ],
      "properties": {
        "ref": {
          "type": "string",
          "description": "Branch, tag or commit; the default branch when omitted."
        },
        "path": {
          "type": "string",
          "description": "File or directory path; empty for the repository root."
        },
        "repo": {
          "type": "string",
          "description": "Repository as owner/name, e.g. merino-outdoor/shop-theme."
        }
      }
    }
    arguments 20 lines
  • github_create_issue unknown never probed

    Open an issue in a GitHub repository you connected: a finding, a proposal or a to-do for the team. The issue says it came from Eco. Nothing in the code changes.

    mcp-tool

    {
      "type": "object",
      "required": [
        "repo",
        "title"
      ],
      "properties": {
        "body": {
          "type": "string",
          "description": "Issue body in Markdown."
        },
        "repo": {
          "type": "string",
          "description": "Repository as owner/name."
        },
        "title": {
          "type": "string",
          "description": "Issue title."
        }
      }
    }
    arguments 21 lines
  • get_skill unknown never probed

    Read a skill's Markdown to inspect it (does not install anything). To install, call install_skill — it returns the file plus the exact path to write it to. Pass version to pin one.

    mcp-tool

    {
      "type": "object",
      "required": [
        "skill"
      ],
      "properties": {
        "skill": {
          "type": "string",
          "description": "owner/name, e.g. cartlift/product-feed-optimizer"
        },
        "version": {
          "type": "integer",
          "description": "Pin a version number; omit for latest."
        }
      }
    }
    arguments 16 lines
  • brain_write unknown never probed

    Create or update a Brain file. Writes to your default brain unless you name one; shared brains need editor access. Replaces the whole body (use mode "append" to add to the end); the previous body is kept as a version. Credentials are refused — the Brain is memory, not a vault. Needs your agent bearer token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name",
        "body"
      ],
      "properties": {
        "body": {
          "type": "string",
          "description": "Markdown content."
        },
        "mode": {
          "type": "string",
          "description": "replace (default) or append."
        },
        "name": {
          "type": "string",
          "description": "File name ending in .md, e.g. customer-faq.md"
        },
        "brain": {
          "type": "string",
          "description": "Brain to write into (owner-handle/name for shared brains, needs editor access). Omit for your default brain."
        },
        "folder": {
          "type": "string",
          "description": "Folder, e.g. Company. New files default to \"Agent\"."
        }
      }
    }
    arguments 29 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 5ff52ea48a065f2c.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/5ff52ea48a065f2c/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/5ff52ea48a065f2c/badge.svg)](https://brick.blue/agent/5ff52ea48a065f2c?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.