get_account
所需权限:account:read组织、套餐和订阅状态、图片和 LLM credits、下次补充时间、各图片模型及成本、比例和 Carousel 成本。
无需输入,组织由登录时决定。

加载中...
SMEPost MCP
连接 Codex、Claude Code,或任何支持 Streamable HTTP 和 OAuth 的 MCP 客户端。查看 credits,生成图片和 4 页 Instagram Carousel,然后在 SMEPost 中继续编辑。
在客户端中添加一个地址,按提示用 SMEPost 账户登录即可。
MCP 连接地址
https://smepost.io/api/mcp/content
Codex 会打开浏览器,供你登录并选择组织。
codex mcp add smepost --url https://smepost.io/api/mcp/content
codex mcp login smepost添加服务器后,在 Claude Code 中通过 /mcp 菜单完成登录。
claude mcp add --transport http smepost https://smepost.io/api/mcp/content
# Then run /mcp inside Claude Code and choose smepost → Authenticate使用 Streamable HTTP transport 连接同一地址。客户端会自动发现登录方式,无需 API key、插件或 widget。
{
"mcpServers": {
"smepost": {
"type": "http",
"url": "https://smepost.io/api/mcp/content"
}
}
}打开 Inspector,选择 Streamable HTTP 并粘贴连接地址,即可在接入自己的客户端之前先执行 initialize、tools/list 和 tools/call。
npx @modelcontextprotocol/inspector采用 OAuth 2.1 和 PKCE(S256),客户端不会接触你的 SMEPost 密码。
| 所需权限 | 含义 |
|---|---|
account:read | 读取套餐、订阅状态、credits 余额、补充日期和成本(get_account)。 |
images:generate | 发起会消耗图片 credits 的图片和 Carousel 生成(generate_image、generate_ig_carousel)。 |
images:read | 读取任务进度和结果,并获取下载链接(get_generation)。 |
Access token 有效期 60 分钟。Refresh token 最长有效 90 天,每次使用都会更换;重复使用旧的 refresh token 会撤销整个连接。
在客户端中撤销(客户端会调用 revoke endpoint),或移除组织成员资格。新请求会立即失败;仍在运行的任务会在保存前停止,并退回 credits。
https://smepost.io/.well-known/oauth-protected-resource/api/mcp/content
https://smepost.io/.well-known/oauth-authorization-server/api/content/oauth
https://smepost.io/api/content/oauth/authorize
https://smepost.io/api/content/oauth/token
https://smepost.io/api/content/oauth/register
https://smepost.io/api/content/oauth/revoke共 4 个工具,服务器使用这里列出的同一份 schema 校验;未知字段会被拒绝。
account:read组织、套餐和订阅状态、图片和 LLM credits、下次补充时间、各图片模型及成本、比例和 Carousel 成本。
无需输入,组织由登录时决定。
images:generate提交一张符合品牌的图片任务,自动应用组织的品牌资料和知识,并立即返回 jobId。
| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
prompt | string | 是 | 图片要呈现的内容。 |
ratio | 1:1 | 4:5 | 9:16 | 是 | 宽高比。 |
language | en | zh-hk | zh-tw | zh-cn | 是 | 图片中文字使用的语言。 |
modelId | gemini-3.1-flash-image-preview | gemini-nano-banana-2.1 | gpt-image-2.5-flare | 否 | 从 get_account 获取的图片模型;不填则使用默认模型。 |
background | opaque | transparent | auto | 否 | auto(默认)、opaque,或在模型支持时使用 transparent。 |
requestId | string | 是 | 你自定义的幂等键(idempotency key),只在重试完全相同的请求时复用。 |
maxCredits | number | 是 | 图片 credits 硬性上限;成本更高的任务会被拒绝,且不会扣费。 |
images:generate提交 4 页 Instagram Carousel 任务:先设计一张拼图,再按 2×2 切成 4 页,逐页 upscale。4 页全部完成后才按页序返回。
| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
brief | string | 是 | Carousel 主题和要点;brief 中的链接不会被读取。 |
ratio | 1:1 | 4:5 | 是 | 宽高比。 |
language | en | zh-hk | zh-tw | zh-cn | 是 | 图片中文字使用的语言。 |
requestId | string | 是 | 你自定义的幂等键(idempotency key),只在重试完全相同的请求时复用。 |
maxCredits | number | 是 | 图片 credits 硬性上限;成本更高的任务会被拒绝,且不会扣费。 |
images:read状态、阶段、页数进度、credits 结算、错误;成功后提供短时有效的下载链接和在 SMEPost 中继续编辑的链接。
| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
jobId | string | 是 | 发起任务时返回的 jobId。 |
参数放在 tools/call 中。结构化结果也会以文本返回,方便只读取文本的客户端。
{
"method": "tools/call",
"params": {
"name": "generate_image",
"arguments": {
"prompt": "A calm flat-lay of a pour-over coffee set for an autumn menu launch",
"ratio": "4:5",
"language": "en",
"requestId": "autumn-menu-image-001",
"maxCredits": 1
}
}
}{
"method": "tools/call",
"params": {
"name": "generate_ig_carousel",
"arguments": {
"brief": "Four practical tips for brewing better coffee at home, ending with a visit-us call to action",
"ratio": "4:5",
"language": "zh-hk",
"requestId": "brew-tips-carousel-001",
"maxCredits": 3
}
}
}{
"jobId": "cmj_3f9a1c2b7d4e5f60718293a4b5c6d7e8f9012345",
"kind": "ig_carousel",
"status": "queued",
"reservedCredits": 3,
"replayed": false,
"pollAfterMs": 5000
}{
"jobId": "cmj_3f9a1c2b7d4e5f60718293a4b5c6d7e8f9012345",
"kind": "ig_carousel",
"status": "running",
"stage": "upscaling",
"progress": {
"completedPages": 2,
"totalPages": 4
},
"attempts": 1,
"billing": {
"state": "reserved",
"reservedCredits": 3,
"chargedCredits": 0,
"refundedCredits": 0
},
"images": [],
"downloadExpiresAt": null,
"smepostUrl": null,
"error": null,
"pollAfterMs": 8000,
"createdAt": "2026-10-23T08:00:00.000Z",
"completedAt": null
}{
"jobId": "cmj_3f9a1c2b7d4e5f60718293a4b5c6d7e8f9012345",
"kind": "ig_carousel",
"status": "succeeded",
"stage": "completed",
"progress": {
"completedPages": 4,
"totalPages": 4
},
"attempts": 1,
"billing": {
"state": "charged",
"reservedCredits": 3,
"chargedCredits": 3,
"refundedCredits": 0
},
"images": [
{
"page": 1,
"width": 1728,
"height": 2160,
"mimeType": "image/png",
"downloadUrl": "https://smepost.io/api/content/downloads/DOWNLOAD_TOKEN_PAGE_1"
},
{
"page": 2,
"width": 1728,
"height": 2160,
"mimeType": "image/png",
"downloadUrl": "https://smepost.io/api/content/downloads/DOWNLOAD_TOKEN_PAGE_2"
},
{
"page": 3,
"width": 1728,
"height": 2160,
"mimeType": "image/png",
"downloadUrl": "https://smepost.io/api/content/downloads/DOWNLOAD_TOKEN_PAGE_3"
},
{
"page": 4,
"width": 1728,
"height": 2160,
"mimeType": "image/png",
"downloadUrl": "https://smepost.io/api/content/downloads/DOWNLOAD_TOKEN_PAGE_4"
}
],
"downloadExpiresAt": "2026-10-23T08:19:30.000Z",
"smepostUrl": "https://smepost.io/org/ORG_ID/projects/PROJECT_ID/chats/CHAT_ID",
"error": null,
"pollAfterMs": null,
"createdAt": "2026-10-23T08:00:00.000Z",
"completedAt": "2026-10-23T08:04:30.000Z"
}{
"jobId": "cmj_3f9a1c2b7d4e5f60718293a4b5c6d7e8f9012345",
"kind": "ig_carousel",
"status": "failed",
"stage": "failed",
"progress": {
"completedPages": 3,
"totalPages": 4
},
"attempts": 3,
"billing": {
"state": "refunded",
"reservedCredits": 3,
"chargedCredits": 0,
"refundedCredits": 3
},
"images": [],
"downloadExpiresAt": null,
"smepostUrl": null,
"error": {
"code": "GENERATION_TIMEOUT",
"retryable": false
},
"pollAfterMs": null,
"createdAt": "2026-10-23T08:00:00.000Z",
"completedAt": "2026-10-23T08:12:00.000Z"
}{
"error": {
"code": "COST_EXCEEDS_MAX_CREDITS",
"message": "This job costs 3 image credits, above maxCredits 2.",
"retryable": false,
"cost": 3,
"maxCredits": 2
}
}{
"organization": {
"id": "ORG_ID",
"name": "Example Coffee"
},
"plan": {
"planId": "plus",
"effectivePlanId": "plus",
"subscriptionStatus": "active",
"billingPastDue": false
},
"credits": {
"image": {
"remaining": 42.5,
"unlimited": false
},
"llm": {
"remaining": null,
"unlimited": true
},
"nextRefillAt": "2026-11-01T00:00:00.000Z"
},
"imageModels": [
{
"modelId": "gemini-3.1-flash-image-preview",
"label": "Nano Banana 2",
"creditCost": 0.5,
"default": false
},
{
"modelId": "gemini-nano-banana-2.1",
"label": "Nano Banana 2.1",
"creditCost": 1,
"default": true
},
{
"modelId": "gpt-image-2.5-flare",
"label": "GPT Image 2.5 Flare",
"creditCost": 1,
"default": false
}
],
"generation": {
"imageRatios": [
"1:1",
"4:5",
"9:16"
],
"carousel": {
"ratios": [
"1:1",
"4:5"
],
"pageCount": 4,
"creditCost": 3,
"generationModelId": "gpt-image-2.5-flare",
"generationCreditCost": 1,
"upscaleModelId": "gemini-3.1-flash-image-preview",
"upscaleCreditCost": 2
},
"languages": [
"en",
"zh-hk",
"zh-tw",
"zh-cn"
]
},
"scopes": [
"account:read",
"images:generate",
"images:read"
]
}生成在后台运行,连接中断不会取消任务,也不会重复扣费。
调用 get_generation,两次调用之间等待 pollAfterMs(排队时约 5 秒,运行中约 8 秒)。状态变为 succeeded 或 failed 即可停止。
相同 requestId 和相同输入会返回原任务(replayed: true),不会再次扣费;相同 requestId 但输入不同会返回 IDEMPOTENCY_CONFLICT。每个客户端、用户和组织相互独立。
创建任务时,会在核对余额的同一步骤中预留 credits,因此并发请求也不会超额扣费。成本高于 maxCredits 的任务会在预留前被拒绝。
服务商错误和超时会按 backoff 自动重试,最多 3 次,并复用已完成的部分,例如拼图和已 upscale 的页面。如果最终仍失败,预留的 credits 只会退还一次。如果任务开始后 credits 已补充或套餐有变,余额已重置,因此不再退款。
图片以私有方式存储。每次调用 get_generation 都会返回新链接,有效期 15 分钟;过期后再调用一次即可。
每个结果都会保存为组织内“AI 应用创作”项目中的图片对话,可在网站上查看、编辑和发布。smepostUrl 会直接打开。
价格来自 SMEPost 全站共用的模型目录;get_account 始终返回最新数值。
| 模型 | 图片 credits |
|---|---|
Nano Banana 2 gemini-3.1-flash-image-preview | 0.5 |
Nano Banana 2.1 gemini-nano-banana-2.1默认 | 1 |
GPT Image 2.5 Flare gpt-image-2.5-flare | 1 |
| 4 页 Carousel | 3 |
拼图 1 + 4 页 upscale 2 = 共 3 图片 credits。
Credits 不足时会返回 INSUFFICIENT_IMAGE_CREDITS。SMEPost 不会自动切换到其他模型或套餐。
工具失败会以 MCP 工具错误返回,附带错误码和是否可重试。
| 错误码 | 含义 | 可重试? |
|---|---|---|
INVALID_INPUT | 参数不符合工具 schema。 | 不可 |
COST_EXCEEDS_MAX_CREDITS | 任务成本高于 maxCredits。请提高 maxCredits 或换用更便宜的模型。 | 不可 |
INSUFFICIENT_IMAGE_CREDITS | 组织的图片 credits 不足。 | 不可 |
BILLING_PAST_DUE | 存在逾期付款,请在 SMEPost 中更新付款信息。 | 不可 |
IDEMPOTENCY_CONFLICT | 此 requestId 已用于不同的输入,请使用新的 requestId。 | 不可 |
TOO_MANY_ACTIVE_JOBS | 组织同时运行的生成任务过多,请等待其中一项完成。 | 可以 |
RATE_LIMITED | 请求过于频繁,请等待一分钟。 | 可以 |
JOB_NOT_FOUND | 当前用户和组织下不存在这个 jobId 的任务。 | 不可 |
ORGANIZATION_NOT_FOUND | 组织已不存在。 | 不可 |
ACCESS_REVOKED | 连接或组织访问权限已被移除,请重新连接客户端。 | 不可 |
GENERATION_FAILED | 图片服务商出错,系统会先自动重试。 | 可以 |
GENERATION_TIMEOUT | 图片服务商处理超时,系统会先自动重试。 | 可以 |
VERSION_LIMIT_REACHED | 已达到免费套餐的版本上限。 | 不可 |
TEMPORARILY_UNAVAILABLE | SMEPost 暂时无法完成请求,请稍后重试。 | 可以 |
任何支持 Streamable HTTP 和 OAuth 的客户端都使用同一地址。下表列出已完成端到端检查的客户端。
| 客户端 | 状态 |
|---|---|
| Codex | 已提供配置,正式环境检查待完成 |
| Claude Code | 已提供配置,正式环境检查待完成 |
| MCP Inspector | 已提供配置,正式环境检查待完成 |
| 其他 Streamable HTTP + OAuth 客户端 | 已提供配置,正式环境检查待完成 |