Search curated SaaS & AI tools, submit your product, and verify backlink badges from any AI agent.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get a tool by slug. Published tools return public details. Unpublished submissions return their status, eligibility, and free/paid next steps.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://awesome.tools/mcp
Get a tool by slug. Published tools return public details. Unpublished submissions return their status, eligibility, and free/paid next steps.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string"
}
}
}List categories with published tool counts. Use the slugs in submit_tool.
No arguments.
{
"type": "object",
"properties": {}
}List tags with published tool counts.
No arguments.
{
"type": "object",
"properties": {}
}Search published tools on Awesome Tools. query matches name, tagline, and description. category and tag take slugs from list_categories and list_tags. limit defaults to 20 (max 50).
| Argument | Type | Description |
|---|---|---|
| tag | string | |
| limit | integer | |
| query | string | |
| category | string | |
| isFeatured | boolean |
{
"type": "object",
"properties": {
"tag": {
"type": "string"
},
"limit": {
"type": "integer"
},
"query": {
"type": "string"
},
"category": {
"type": "string"
},
"isFeatured": {
"type": "boolean"
}
}
}Send feedback to the Awesome Tools team, optionally about a tool slug.
| Argument | Type | Description |
|---|---|---|
| slug | string | |
| message* | string | |
| category* | string |
{
"type": "object",
"required": [
"category",
"message"
],
"properties": {
"slug": {
"type": "string"
},
"message": {
"type": "string",
"maxLength": 2000
},
"category": {
"enum": [
"bug",
"missing_feature",
"question",
"other"
],
"type": "string"
}
}
}Submit your own SaaS or AI tool. plan free_backlink is free for sites with domain rating 20+, saves the listing, and needs a visible badge link on your site (returns the badge HTML; then call verify_my_backlink). plan featured_49 ($49 Featured Launch, no backlink needed) or sponsor_149 ($149 Featured + Newsletter Sponsor) returns a price only. Nothing is saved and no email is sent until the requester approves the spend and you call again with confirmPaymentSpend true, which returns a Stripe Checkout URL. No payment happens until the requester pays on Stripe.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| plan | string | |
| tagline* | string | |
| categories | array | 1-3 category slugs from list_categories. |
| websiteUrl* | string | Your tool's custom domain or HTTPS URL. Preview hosting domains are not accepted. |
| description* | string | |
| submitterName* | string | |
| submitterEmail* | string |
Check the Awesome Tools badge or link on your site for an unpublished free listing. backlinkUrl defaults to the listing's website. When the link is live and the site is eligible, the listing is scheduled and the submitter is emailed.
| Argument | Type | Description |
|---|---|---|
| slug* | string | |
| backlinkUrl | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string"
},
"backlinkUrl": {
"type": "string"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| confirmPaymentSpend | boolean | Set true only after the requester approved the payment. |
{
"type": "object",
"required": [
"name",
"websiteUrl",
"tagline",
"description",
"submitterName",
"submitterEmail"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"plan": {
"enum": [
"free_backlink",
"featured_49",
"sponsor_149"
],
"type": "string",
"default": "featured_49"
},
"tagline": {
"type": "string",
"maxLength": 160
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 3,
"description": "1-3 category slugs from list_categories."
},
"websiteUrl": {
"type": "string",
"description": "Your tool's custom domain or HTTPS URL. Preview hosting domains are not accepted."
},
"description": {
"type": "string",
"maxLength": 2000
},
"submitterName": {
"type": "string",
"maxLength": 120
},
"submitterEmail": {
"type": "string",
"format": "email",
"maxLength": 254
},
"confirmPaymentSpend": {
"type": "boolean",
"default": false,
"description": "Set true only after the requester approved the payment."
}
}
}