meetmyagent-mcp
This server connects your AI assistant to MeetMyAgent, a free AI-native marketplace and business directory, enabling both discovery and listing of businesses, services, and products.
No API Key Required
mma_guide— Retrieve the live operator manual; always call this first to understand the platform's rules and response format.mma_describe_catalog— Get the self-describing facet schema with live category counts and valid filter keys/values; call before searching.mma_search— Structured marketplace search using category slugs, facet filters, natural-language queries, geo radius, sorting, and cursor-based pagination.mma_get_listing— Fetch full details for a single listing, including provider info and verified-business badge.mma_get_provider— View a provider's public profile, including verified domains.mma_list_requests— Browse what people are actively looking for, filterable by status, category, or tag.mma_get_blog— List or read published blog posts by slug and locale (English or German).
API Key Required
mma_create_listing— Publish a business, service, or product on the marketplace for free; facet-validated.mma_import_listing— Draft a listing by importing content from a URL or pasted text; returns a draft and a gap report of missing fields.mma_my_listings— View and manage all listings associated with your account.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@meetmyagent-mcpsearch for AI agents that automate lead generation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Part of the StudioMeyer MCP Stack — Built in Mallorca 🌴 · ⭐ if you use it
meetmyagent-mcp
Put the MeetMyAgent catalog inside your AI. Claude, Cursor, Codex or ChatGPT can search the listing catalog and, with your own API key, put a business, service or product into it.
Reads are anonymous and zero-config: no account, no key needed to search, read listings, browse requests or read the blog. Set one env var to also list your own offers.
Find:
mma_searchwith a self-describing facet schema (describe, then search, never a hallucinated filter).List: put a business, service or product into the catalog in third-person "agent voice", free.
Get found by AI: a MeetMyAgent listing is a structured, citable record that answer engines can read.
What this package is, and what it is not
MeetMyAgent today is an open sales network: a provider publishes a sales mandate (what is being sold, who the target customer is, what a successful introduction pays), a sales partner registers a concrete buyer before the introduction, and the reserved reward falls due on the documented first paid invoice.
This package does not do any of that. It is a client of the v1 catalog API: search, read, list. The sales network runs over the hosted connector at https://meetmyagent.io/mcp, which requires an OAuth sign-in and carries a different set of tools. If you came here for mandates and claims, use the hosted server.
MeetMyAgent lives at https://meetmyagent.io.
A note from us
We have been building tools and systems for ourselves for the past two years. The fact that this repo is small and has few stars is not because it is new — it is because we only just decided to share it. It is not a fresh experiment, it is a long story with a recent commit.
We love building things and sharing them. We do not love growth hacks or chasing stars. So this repo is small. The code is real, it gets used, issues get answered. Judge for yourself.
From a small studio in Palma de Mallorca.
Related MCP server: AI List My Business
Quick start
Claude Code
claude mcp add meetmyagent -s user -- npx -y meetmyagent-mcpThen just say: "Find an AI agent that monitors my brand" or "List my studio on MeetMyAgent."
Cursor / Claude Desktop / Codex
{
"mcpServers": {
"meetmyagent": {
"command": "npx",
"args": ["-y", "meetmyagent-mcp"]
}
}
}To also list your own offers, add your API key:
{
"mcpServers": {
"meetmyagent": {
"command": "npx",
"args": ["-y", "meetmyagent-mcp"],
"env": { "MEETMYAGENT_API_KEY": "mma_key_…" }
}
}
}ChatGPT (and any remote/OAuth client)
Use the hosted server — no install, no key, sign in with OAuth 2.1:
https://meetmyagent.io/mcpThe hosted server is a different, larger surface: the sales network (mandates, claims, the attribution rule behind them) plus capabilities, the board and the catalog. Its tool list follows your grant: tools/list carries what the permissions you approved at connect time actually cover, so it is not "everything here plus more" for every account. This npm package is the local/stdio option for reading the catalog and for scripting.
What you can do
Public (no key):
Tool | What it does |
| Call first — the live operator manual (how to use the platform). |
| The self-describing facet schema. Read it before searching. |
| Structured search: category + facet filters + semantic |
| One listing, incl. the agent behind it + verified-business badge. |
| A provider's public profile + verified domains. |
| Browse the demand side (what people are looking for). |
| Read the blog. |
With your API key (listings:write):
Tool | What it does |
| List a business, service or product (facet-validated). |
| Zero-form listing: import a draft from a URL or pasted text. |
| The listings under your account. |
Two live resources are always available without a tool call: mma://catalog/schema and mma://docs/skill.
Getting an API key (optional)
Only needed to list. Create one at meetmyagent.io/console with the listings:write scope, then set:
export MEETMYAGENT_API_KEY="mma_key_…"The key is read from your environment and sent only to meetmyagent.io as a Bearer token. It is never written anywhere by this package.
How it works
This is a thin client over the public MeetMyAgent REST API (https://meetmyagent.io/v1). Every response is one envelope — { success, result, errors[], messages[], result_info?, links?, request_id } — so you always read .result, page via .result_info.cursor, and branch on .errors[0].slug. The full contract is self-describing:
Machine index of every endpoint: https://meetmyagent.io/v1
OpenAPI 3.1 (incl. the
webhookssection): https://meetmyagent.io/v1/openapi.jsonThe agent operator skill: https://meetmyagent.io/v1/skill.md
Subscribable events + delivery contract: https://meetmyagent.io/v1/webhooks/events
Since 0.2.0 every tool also advertises a typed outputSchema (plain JSON
Schema, additive-safe): validating clients get a stable result contract, and
error results keep the structured error in the text block.
Configuration
Env var | Default | Purpose |
| (none) | Optional. Unlocks the listing tools. |
|
| Override the API base (self-host / staging). |
Contributing
Issues and PRs welcome at https://github.com/studiomeyer-io/meetmyagent-mcp. This package intentionally exposes only the public catalog surface; the rest of the platform (sign-in, the sales network, credits) is not part of it.
License
MIT © StudioMeyer — Palma de Mallorca.
Available Tools
10 toolsmma_create_listingAInspect
List a business, service or product on MeetMyAgent (free, facet-validated). Call mma_describe_catalog first and use ONLY its facet keys + enum values in attributes. Write in third-person agent voice ('Acme Studio offers …'). Needs an API key with the listings:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| media | No | http(s) image URLs (max 20). | |
| title | Yes | ||
| category | Yes | ||
| currency | No | 3-letter ISO code, e.g. EUR. | |
| attributes | No | Facet values validated against the category schema. | |
| priceCents | No | ||
| description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| links | No | Next-action links — chain by following `rel`, never by rebuilding URLs. |
| listing | Yes | A public listing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses that listings are free, facet-validated, require a specific API scope, and must be written in third-person voice. This is substantial transparency, though it omits details like error handling or duplicate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four tight sentences, front-loaded with the core purpose and followed by prerequisites, style, and auth. Every sentence adds necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, nested objects, no annotations), the description covers the essential contextual elements: prerequisites, auth scope, attribute validation, and writing style. The output schema handles return values, so no need to describe them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43%, so the description compensates by clarifying the attributes object (must use catalog facet keys/enums) and the expected writing style for description/title. It adds critical meaning beyond the basic schema, even if it doesn't explain every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing a business, service, or product on MeetMyAgent. It uses a specific verb ('List') and resource, and distinguishes from sibling tools like import or search by emphasizing 'create' context and facet-validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage guidance: call mma_describe_catalog first and use only its facet keys/enum values in attributes, plus a required API scope. It doesn't name alternatives (e.g., mma_import_listing), but the prerequisite and style instructions give clear when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_describe_catalogAInspect
Read the self-describing facet schema BEFORE searching or listing. Without a category it lists all categories (with live counts); with a category it returns that category's filterable facets, types and allowed enum values. Only use facet keys + values it returns — never invent them.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category slug (e.g. products, businesses, ai-agents, real-estate). |
Output Schema
| Name | Required | Description |
|---|---|---|
| usage | Yes | |
| facets | Yes | Facet definitions: key, type, allowed values, distributions. |
| category | No | The requested category (when a slug was given). |
| categories | Yes | All categories with live counts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the behavior with and without the category parameter, including live counts and returned facet types and enum values. It warns against inventing values, which is helpful, though it does not explicitly mention side effects or permissions; as a read operation, that is implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using two sentences to convey all necessary information without redundancy. It is well-structured and easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains the tool's role in the context of searching and listing, including its prerequisite nature and the rule against inventing facets. It is complete for an agent to know when and how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'category' is well-described in both the schema and the main description, with examples and a clear explanation of its effect on the output. Schema coverage is 100% and the description adds functional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool reads the self-describing facet schema, distinguishing it from search or listing operations. It explicitly says 'BEFORE searching or listing,' making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance ('BEFORE searching or listing') and instructs users to only use facet keys and values returned by the tool, preventing misuse. This effectively differentiates it from sibling tools like search and listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_get_blogAInspect
Read the MeetMyAgent blog: a slug returns one post (as post), no slug lists published posts (as posts).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | ||
| locale | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| post | No | One post (slug mode). |
| posts | No | Published posts (list mode). |
| jsonld | No | BlogPosting JSON-LD (slug mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral disclosure. It explains the key behavior: the presence/absence of the slug changes the output structure (single post vs. list). It also implies the read-only nature (reading is safe), but does not explicitly state that it is non-destructive retically. However, the behavior is well described for a read operation, and the output schema is available to clarify return types, so score is 4 instead of 5 because it lacks explicit mention of idempotency or side effects (though that is not critical here).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with a semicolon that efficiently conveys both modes. It front-loads the purpose and provides the key distinction between no-slug and with-slug. Every word is necessary; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 optional params, output schema exists) and the description explains the main behavior sufficiently. It misses a few details like the locale parameter's effect and potential error cases, but the output schema helps. Since the tool is a blog reader, this level of completeness is adequate; a 4 is appropriate because the description is not exhaustive but covers the core usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It explains 'slug' semantically (identifies a single post) and 'locale' implicitly through the enum in the schema, but the description does not explicitly mention locale affects language or filtering. However, the schema provides an enum for locale, which gives some meaning; the description adds the slug semantics that are not self-evident from the schema (just a string). Since there are only 2 params and the description covers one well)Skip because locale is not mentioned in description but is covered by the enum, overall it compensates adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: reads the blog, with a specific verb (read), and explains the two modes: with a slug returns one post, without returns a list of posts. It distinguishes itself from siblings like mma_get_listing (which is listing-specific) and mma_search, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: provide a slug to get a single post, omit it to list posts. It does not explicitly mention when not to use it or alternatives, but the context is clear enough for the agent to decide. Since there are other read tools (mma_get_provider, mma_get_listing), a bit more guidance on when to choose this over those would have been ideal, but not necessary for a blog tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_get_listingAInspect
Fetch one listing by id — full detail incl. the agent/provider behind it, the verified-business badge, and next-action links. The human-readable page is https://meetmyagent.io/en/listings/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| links | No | Next-action links — chain by following `rel`, never by rebuilding URLs. |
| listing | Yes | A public listing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of communicating behavior. It makes clear this is a read-style 'fetch' that returns a single listing's full detail, including agent/provider and follow-up links. It does not discuss auth, rate limits, or failure behavior, but for a simple one-item get operation it is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the main action, and scannable. The human-readable page URL adds extra context but is not essential for API usage, keeping it from a perfect conciseness score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool, the description covers purpose, result scope, notable included fields, and even provides a related human-facing resource. With an output schema present, it does not need to enumerate every return field, so this is a complete enough description for selection and invocation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines one required string 'id' with no per-parameter description, so the phrase 'by id' provides the essential mapping from the parameter to the listing identity. However, it does not clarify id format, whether it is an internal id only, or how to obtain it beyond the human-readable URL hint. This is adequate but not value-adding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetch one listing by id'), a clear resource ('listing'), and a meaningful scope ('full detail') that distinguishes it from broader or sibling tools. It also names the included entities (agent/provider, verified-business badge, links), making the tool's purpose concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the right context—when you have a listing id and need full listing details—but it does not explicitly mention when not to use it or point to sibling alternatives like mma_search or mma_get_provider. The usage signal is clear but not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_get_providerCInspect
The public profile of a provider (the 'agent' behind listings), incl. its verified domains.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| bio | No | |
| name | No | |
| verifiedDomains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not mention side effects, permissions, or idempotency. As a read-only operation implied by 'get', it lacks explicit transparency about safety or failure modes, placing the burden on the description, which it does not meet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence without unnecessary fluff. It efficiently conveys the core functionality and key details (provider as agent, verified domains) without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple, the description omits critical context about the parameter and any potential variations in output or failure conditions. It gives some context about the provider but lacks completeness due to the missing parameter explanation and no mention of output structure or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema includes a single required parameter 'id', but the description does not explain what 'id' refers to (e.g., provider ID). With 0% schema coverage for parameters, the description provides no help in understanding how to use the parameter, making it a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves the public profile of a provider, specifying that it is the 'agent' behind listings and includes verified domains. This distinguishes it from sibling tools like get_listing and get_blog, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It only describes what the tool returns, leaving the agent to infer usage context from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_guideAInspect
ALWAYS call this first when a user connects or asks what MeetMyAgent is. Returns the live agent operator manual (invariants, the uniform response envelope, the search/list/deal flows, webhooks, error recovery). Read it back to the user, then help them list or find something.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| skill | Yes | The operator manual, markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It transparently specifies the tool returns a manual and instructs the agent to read it back, revealing expected usage behavior. It doesn't discuss side effects or error handling, but for a read-only guide, that's adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the critical 'ALWAYS call this first' instruction, then a concise explanation of what it returns and how to proceed. No unnecessary details, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no params) and has an output schema. The description covers the purpose, usage trigger, and follow-up action, which is sufficient. It doesn't detail the output schema contents, but the output schema is available to the agent, so completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no details. The description does not need to add parameter semantics, and per the rubric, 0 params baselines at 4. The description is irrelevant to parameters but correctly omits them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the 'live agent operator manual' and explicitly instructs to call it first when a user connects or asks about MeetMyAgent. It distinguishes from siblings by positioning it as an onboarding/reference tool, while siblings handle search, listings, and other actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit trigger condition ('ALWAYS call this first when a user connects or asks what MeetMyAgent is') and subsequent guidance ('Read it back to the user, then help them list or find something'), which implies when to use other tools. This is direct and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_import_listingAInspect
Zero-form listing: import a draft from a URL or pasted text (quarantined extraction). Returns a draft + a gapReport of what is still missing; fill the gaps, then publish from the console. Needs an API key with the listings:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | A page to import (a listing/product/profile URL). | |
| text | No | Or raw text describing the offer. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Intake job id. |
| status | Yes | |
| gapReport | No | What is still missing before publish. |
| sourceUrl | No | |
| draftListingId | No |
TDQS
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 discloses that extraction is 'quarantined' (implying safety), that it returns a draft and a gapReport, and that publishing is done from the console (not via this tool). It also states the auth scope requirement. This is good behavioral disclosure for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and every clause adds value. It covers the workflow, the return value, and the auth requirement without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (which likely describes the draft and gapReport), so the description doesn't need to detail return values. It explains the workflow (import, fill gaps, publish from console) and the auth requirement. It could mention what 'quarantined' means in terms of behavior, but overall it's complete for a tool with an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds the context that these are alternatives ('or') and that they are for importing a draft, but doesn't add much beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Zero-form listing: import a draft from a URL or pasted text (quarantined extraction).' It specifies the verb (import), the resource (listing draft), and the method (URL or text). It distinguishes from siblings like mma_create_listing by emphasizing 'zero-form' and 'quarantined extraction'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use: 'import a draft from a URL or pasted text' and mentions the workflow: 'fill the gaps, then publish from the console.' It doesn't explicitly state when not to use or name alternatives, but the context is clear enough. It also mentions the API key requirement, which is a prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_list_requestsBInspect
Browse the demand side — things people are actively looking for. Filter by status, category or tag. Answer one by pointing the user to https://meetmyagent.io/en/requests.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| status | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | Pagination info. |
| requests | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions filters but doesn't disclose return behavior (e.g., pagination, sorting, result limits), or whether responses are summarized or full. It also doesn't state if 'answered' status implies the request is still viewable. This is a gap for a read-only browsing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (two sentences) and front-loaded with the core purpose. The second sentence provides a specific user-facing instruction. No wasted words, though it could add a sentence on behavior without hurting conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is an output schema (though its contents are unknown), and the tool has only 3 optional params, the description is somewhat minimal. It doesn't explain the difference between answering a request and browsing, nor does it clarify if the tool can directly answer requests (e.g., by posting a response). The link to meetmyagent.io suggests external action but doesn't clarify the tool's role in completing a request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It mentions 'status, category or tag' but doesn't explain the enum values for status (e.g., what does 'answered' mean? vs 'closed'?). It also doesn't clarify how tags/categories are specified or whether any are required. The description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: browsing the demand side (requests) and filtering by status, category, or tag. It distinguishes from siblings like mma_search (which searches listings) and mma_get_listing (which gets specific listings), but doesn't explicitly name them as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for browsing demand-side requests, but it doesn't explicitly state when to use this versus mma_search or mma_get_listing. It does provide a specific action: 'Answer one by pointing the user to https://...' which gives a concrete follow-up, but lacks formal when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_my_listingsAInspect
List the listings under your own account (needs your API key).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| listings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds the authentication requirement ('needs your API key') and implies a read-only operation via 'List.' It does not disclose potential gaps like pagination, result limits, or error behavior, but for a simple zero-parameter list tool, the auth note provides meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence delivers the core action, scope, and a prerequisite without any filler or redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 params), the presence of an output schema (which covers return values), and the auth note, the description is largely sufficient. The only minor gaps are unspecified behaviors like pagination or rate limits, which are common for list operations but not critical for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the rubric sets a baseline of 4 when params = 0. The description doesn't need to explain parameters since the input schema is empty and there's nothing to elaborate beyond scope ('your own account').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource scope ('listings under your own account'), which distinguishes it from siblings like mma_search (all listings) and mma_get_listing (single listing). However, it doesn't explicitly name or contrast sibling tools, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context—this tool retrieves only your own account's listings, and it flags the API key prerequisite. Yet it provides no explicit when/when-not guidance or named alternatives (e.g., mma_search vs. mma_my_listings), so it stays at implied usage level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mma_searchAInspect
Structured marketplace search: a category + facet filters, an optional natural-language q, and an optional geo radius. Cursor-paginated (pass cursor back until null). Call mma_describe_catalog first so your filters use real facet keys.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Optional natural-language query (semantic ranking). | |
| sort | No | ||
| limit | No | ||
| cursor | No | ||
| filters | No | Structured facet filters. | |
| category | No | Category slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | Pagination info. |
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior, and it does disclose cursor pagination semantics and the need to use real facet keys. However, it mentions an 'optional geo radius' without exposing a matching schema parameter, which could mislead an agent; it also does not explicitly state that search is read-only or safe to execute.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence earns its place. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter search tool with no annotations and a 50% schema description coverage, the description provides the main search model, pagination approach, and prerequisite setup. It is almost complete, but the unresolved 'geo radius' mention and unanswered sort/limit behavior leave some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description goes beyond the schema by clarifying that q is natural-language with semantic ranking, filters are structured facet filters, and that cursor should be passed back until null. It also tells the agent to use mma_describe_catalog for valid facet keys, which adds practical meaning to the filters parameter. However, sort and limit are left to the schema/enum, and the 'geo radius' is not mapped to any parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a structured marketplace search with category, facet filters, natural-language query, and geo radius. It also suggests a prerequisite catalog call (mma_describe_catalog), which distinguishes it from lookup/get siblings like mma_get_listing and mma_get_provider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage guidance: call mma_describe_catalog first to obtain real facet keys, and pass cursor back until null for pagination. It does not explicitly contrast with siblings, but the search-vs-specific-lookup distinction is strongly implied.
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. Dates show when Glama detected each change.
10 tool updates
v0.2.0- Changed
mma_create_listing1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "links": { + "description": "Next-action links — chain by following `rel`, never by rebuilding URLs.", + "items": { + "properties": { + "href": { + "type": "string" + }, + "method": { + "type": "string" + }, + "rel": { + "type": "string" + } + }, + "required": [ + "rel", + "method", + "href" + ], + "type": "object" + }, + "type": "array" + }, + "listing": { + "description": "A public listing.", + "properties": { + "aiVisibilityScore": { + "type": "number" + }, + "attributes": { + "type": "object" + }, + "boosted": { + "type": "boolean" + }, + "category": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "description": { + "type": "string" + }, + "domainVerified": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "location": { + "type": "object" + }, + "media": { + "items": { + "type": "string" + }, + "type": "array" + }, + "priceCents": { + "type": "number" + }, + "provider": { + "type": "object" + }, + "ratingAvg": { + "type": "number" + }, + "ratingCount": { + "type": "number" + }, + "status": { + "enum": [ + "draft", + "active", + "paused", + "archived" + ], + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "category", + "title", + "description", + "status" + ], + "type": "object" + } + }, + "required": [ + "listing" + ], + "type": "object" +}
- Changed
mma_describe_catalog1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "categories": { + "description": "All categories with live counts.", + "items": { + "type": "object" + }, + "type": "array" + }, + "category": { + "description": "The requested category (when a slug was given).", + "type": "object" + }, + "facets": { + "description": "Facet definitions: key, type, allowed values, distributions.", + "items": { + "type": "object" + }, + "type": "array" + }, + "usage": { + "type": "string" + } + }, + "required": [ + "categories", + "facets", + "usage" + ], + "type": "object" +}
- Changed
mma_get_blog1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "jsonld": { + "description": "BlogPosting JSON-LD (slug mode).", + "type": "object" + }, + "post": { + "description": "One post (slug mode).", + "properties": { + "body": { + "type": "string" + }, + "description": { + "type": "string" + }, + "locale": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "required": [ + "slug", + "title" + ], + "type": "object" + }, + "posts": { + "description": "Published posts (list mode).", + "items": { + "properties": { + "body": { + "type": "string" + }, + "description": { + "type": "string" + }, + "locale": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "required": [ + "slug", + "title" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
mma_get_listing1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "links": { + "description": "Next-action links — chain by following `rel`, never by rebuilding URLs.", + "items": { + "properties": { + "href": { + "type": "string" + }, + "method": { + "type": "string" + }, + "rel": { + "type": "string" + } + }, + "required": [ + "rel", + "method", + "href" + ], + "type": "object" + }, + "type": "array" + }, + "listing": { + "description": "A public listing.", + "properties": { + "aiVisibilityScore": { + "type": "number" + }, + "attributes": { + "type": "object" + }, + "boosted": { + "type": "boolean" + }, + "category": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "description": { + "type": "string" + }, + "domainVerified": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "location": { + "type": "object" + }, + "media": { + "items": { + "type": "string" + }, + "type": "array" + }, + "priceCents": { + "type": "number" + }, + "provider": { + "type": "object" + }, + "ratingAvg": { + "type": "number" + }, + "ratingCount": { + "type": "number" + }, + "status": { + "enum": [ + "draft", + "active", + "paused", + "archived" + ], + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "category", + "title", + "description", + "status" + ], + "type": "object" + } + }, + "required": [ + "listing" + ], + "type": "object" +}
- Changed
mma_get_provider1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "bio": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "verifiedDomains": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
mma_guide1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "skill": { + "description": "The operator manual, markdown.", + "type": "string" + } + }, + "required": [ + "skill" + ], + "type": "object" +}
- Changed
mma_import_listing1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "draftListingId": { + "type": "string" + }, + "gapReport": { + "description": "What is still missing before publish.", + "type": "object" + }, + "id": { + "description": "Intake job id.", + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "id", + "status" + ], + "type": "object" +}
- Changed
mma_list_requests1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "page": { + "description": "Pagination info.", + "properties": { + "count": { + "type": "number" + }, + "cursor": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "requests": { + "items": { + "properties": { + "body": { + "type": "string" + }, + "id": { + "type": "string" + }, + "status": { + "enum": [ + "open", + "answered", + "closed" + ], + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "title" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "requests" + ], + "type": "object" +}
- Changed
mma_my_listings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "listings": { + "items": { + "description": "A public listing.", + "properties": { + "aiVisibilityScore": { + "type": "number" + }, + "attributes": { + "type": "object" + }, + "boosted": { + "type": "boolean" + }, + "category": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "description": { + "type": "string" + }, + "domainVerified": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "location": { + "type": "object" + }, + "media": { + "items": { + "type": "string" + }, + "type": "array" + }, + "priceCents": { + "type": "number" + }, + "provider": { + "type": "object" + }, + "ratingAvg": { + "type": "number" + }, + "ratingCount": { + "type": "number" + }, + "status": { + "enum": [ + "draft", + "active", + "paused", + "archived" + ], + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "category", + "title", + "description", + "status" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "listings" + ], + "type": "object" +}
- Changed
mma_search1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "items": { + "description": "A public listing.", + "properties": { + "aiVisibilityScore": { + "type": "number" + }, + "attributes": { + "type": "object" + }, + "boosted": { + "type": "boolean" + }, + "category": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "description": { + "type": "string" + }, + "domainVerified": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "location": { + "type": "object" + }, + "media": { + "items": { + "type": "string" + }, + "type": "array" + }, + "priceCents": { + "type": "number" + }, + "provider": { + "type": "object" + }, + "ratingAvg": { + "type": "number" + }, + "ratingCount": { + "type": "number" + }, + "status": { + "enum": [ + "draft", + "active", + "paused", + "archived" + ], + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "category", + "title", + "description", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "page": { + "description": "Pagination info.", + "properties": { + "count": { + "type": "number" + }, + "cursor": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + } + }, + "required": [ + "items" + ], + "type": "object" +}
10 tool updates
v0.1.0- First observed
mma_create_listing - First observed
mma_describe_catalog - First observed
mma_get_blog - First observed
mma_get_listing - First observed
mma_get_provider - First observed
mma_guide - First observed
mma_import_listing - First observed
mma_list_requests - First observed
mma_my_listings - First observed
mma_search
TDQS
Each tool has a clearly distinct purpose: listing CRUD, catalog schema, blog, provider profiles, search, requests, etc. No two tools overlap in their intended action or resource.
All tools follow the 'mma_verb_noun' snake_case pattern (e.g., mma_create_listing, mma_describe_catalog). This is highly consistent and predictable.
10 tools is a well-scoped set for a marketplace server. Each tool serves a necessary function without being overwhelming or too sparse.
The core listing lifecycle is covered (create, import, read, search, my listings), but update and delete operations are absent, which agents may need.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Directory of APIs, merchants, and tools AI agents can actually use.
Search and discover advertiser products through an open marketplace for AI agents.
Discover and book businesses via AI agents.
Verified local businesses, bookable by AI agents: services, prices, availability and appointments.
Related MCP Servers
- AlicenseAqualityFmaintenanceUniversal search engine for AI agents. Discover products, services, and businesses across every category. 10 MCP tools, zero LLM calls, millisecond responses.114AGPL 3.0
- AlicenseAqualityBmaintenanceCountry-agnostic MCP-callable directory for AI agents to find local SMBs — realtors, insurance agents, medical practitioners — by category, location, or natural-language query. Returns business catalog data and UTM-tagged booking URLs (zero PII).5MIT
- AlicenseAqualityCmaintenanceProvides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to look up real estate agents, search MLS listings, submit buyer/seller leads, and access proprietary seller-intent signals in SC and GA.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/studiomeyer-io/meetmyagent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server