CurlShip
Read and submit the CurlShip directory. Paid actions return checkout_url.
我该使用它吗
质量与安全性
发现(4)
- HIGH
- MEDIUM在 submit_listing 中
- MEDIUM在 submit_listing 中
- INFO在 submit_listing 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"directory": {
"url": "https://curlship.com/mcp"
}
}
}远程端点
https://curlship.com/mcpstreamable-http它能做什么
工具清单
工具(13)
⚪bid_featured(url, amount_usd)
Take the Featured spot. It sits above every listing. The minimum right now is $51. Always dofollow. One-time payment, no refund when someone outbids you. The product must already be listed. Omit amount_usd to bid $51.
输入模式
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL of a listing that is already on the directory."
},
"amount_usd": {
"type": "number",
"description": "Bid in USD. Omit to bid the minimum (51)."
}
},
"required": [
"url"
]
}🟢read_featured
Who holds the Featured spot, and the current minimum bid.
输入模式
{
"type": "object",
"properties": {}
}🟡submit_listing(url, email, tier)
List a product. It goes live immediately. One listing per root domain. https://yourapp.com is the documentation placeholder and is refused.
输入模式
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"email": {
"type": "string"
},
"tier": {
"type": "string",
"enum": [
"bronze",
"bronze_lifetime",
"silver",
"gold",
"platinum"
],
"description": "Omit for the free tier. For the spot above every tier use bid_featured."
}
},
"required": [
"url",
"email"
]
}⚪upgrade_listing(url, tier)
Checkout URL for a paid tier on a listing that already exists. Featured is bid_featured, not this.
输入模式
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"tier": {
"type": "string",
"enum": [
"bronze",
"bronze_lifetime",
"silver",
"gold",
"platinum"
]
}
},
"required": [
"url",
"tier"
]
}🟡refresh_listing(listing_id, proof)
Re-read title, description, and image from the listed page. Send listing_id and proof only. The first confirm previews; send apply back to save.
输入模式
{
"type": "object",
"properties": {
"listing_id": {
"type": "integer"
},
"proof": {
"type": "string",
"enum": [
"email",
"domain"
]
}
},
"required": [
"listing_id",
"proof"
]
}🟡change_listing_url(listing_id, url, proof)
Point an existing listing at a new URL. One listing per root domain, so this is how a second page replaces the first.
输入模式
{
"type": "object",
"properties": {
"listing_id": {
"type": "integer"
},
"url": {
"type": "string"
},
"proof": {
"type": "string",
"enum": [
"email",
"domain"
]
}
},
"required": [
"listing_id",
"url",
"proof"
]
}🔴remove_free_listing(listing_id, remove, proof)
Take a free listing off the directory. Send remove true and no url or email. A paid listing or the Featured holder is refused.
输入模式
{
"type": "object",
"properties": {
"listing_id": {
"type": "integer"
},
"remove": {
"type": "boolean",
"const": true
},
"proof": {
"type": "string",
"enum": [
"email",
"domain"
]
}
},
"required": [
"listing_id",
"remove",
"proof"
]
}🟡confirm_edit(request_id, token, apply)
Apply an edit request. A refresh needs a second call with the apply digest from the preview.
输入模式
{
"type": "object",
"properties": {
"request_id": {
"type": "integer"
},
"token": {
"type": "string"
},
"apply": {
"type": "string",
"description": "Digest from the refresh preview. Omit for a URL change or a removal."
}
},
"required": [
"request_id",
"token"
]
}🟢verify_badge(url)
Re-check the listed site for a link to curlship.com. A free listing with the badge becomes dofollow.
输入模式
{
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
}🟢list_listings(limit, offset, q, since)
Active listings as JSON. No query returns every listing, in the same order as before. Optional query parameters: limit, offset, q, and since. q matches the title, description, or URL. since is an ISO timestamp; listings created at or after it are kept. Each listing includes created_at. There is no category or tag field.
输入模式
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 0,
"description": "Max listings. 50 with offset, 100 with q, when omitted."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "How many matching listings to skip."
},
"q": {
"type": "string",
"description": "Substring of the title, description, or URL."
},
"since": {
"type": "string",
"description": "ISO timestamp. Keep listings created at or after this moment."
}
}
}🟢get_stats
Listing counts and the Ahrefs Domain Rating.
输入模式
{
"type": "object",
"properties": {}
}🟢get_daily_stats(range)
Active listings added per UTC day — the zero-filled series behind the public /stats page. One entry per calendar day from the first listing to today, each with added and the cumulative running total.
输入模式
{
"type": "object",
"properties": {
"range": {
"type": [
"string",
"integer"
],
"description": "\"all\" (default) for the whole series, or a day count 1-3650 for the last N days."
}
}
}🟢get_dr_history
The site's Ahrefs Domain Rating over time — the series behind /stats#dr. Every recorded reading, one per UTC day, plus the current value, the last step (change vs the most recent different reading) and the growth since the first reading.
输入模式
{
"type": "object",
"properties": {}
}社区
证据