Skip to main content
Glama
CaBsCrypto

campaign-creator-provider

by CaBsCrypto

Campaign Creator Provider

一个独立的、本地优先的 TypeScript provider,基于 URL 和目标,创建双语营销活动策略、渠道文案和发布日历。它提供了一个类型化库 API、一个 MCP 形态的 JSON-RPC stdio 契约,以及一个部署在 Vercel 上的小型 HTTP API。

该 provider 生成确定性的 fixture 内容。它不会请求提交的 URL、调用外部服务、发布内容、持久化输入,也不会与 Stellar Bazaar 交互。

功能

  • 西班牙语(es,默认)和英语(en)输出

  • 策略、渠道文案,以及可配置的 1–30 天日历

  • X、LinkedIn、Instagram 和电子邮件渠道

  • JSON Schema 工具定义和结构化验证错误

  • 基于同一个 generator 的 HTTP、TypeScript 和 MCP 形态 stdio 入口

  • 无网络、确定性生成

  • Apache-2.0 许可

Related MCP server: moltline-mcp

HTTP API

发现

curl https://campaign-creator-provider.vercel.app/

健康检查

curl https://campaign-creator-provider.vercel.app/health

创建营销活动

curl -X POST https://campaign-creator-provider.vercel.app/api/campaign \
  -H "content-type: application/json" \
  -d '{"url":"https://example.com/product","objective":"Increase qualified sign-ups","locale":"en","days":7,"channels":["linkedin","email"]}'

必填字段是 url(一个绝对的 HTTP/HTTPS URL)和 objective。可选字段如下:

字段

类型

默认值

约束

locale

"es" | "en"

"es"

支持的输出语言

days

integer

7

1–30

channels

array

所有渠道

x、linkedin、instagram、email 中的一个或多个

audience

string

本地化 fixture

非空

成功请求返回 HTTP 200,并直接返回营销活动对象。无效输入返回 HTTP 400,并返回一个包含校验问题的稳定 JSON 错误对象。路由支持 CORS,且不缓存响应。

TypeScript API

import { createCampaign } from "@stellar-bazaar/campaign-creator-provider";

const campaign = createCampaign({
  url: "https://example.com/product",
  objective: "Increase qualified sign-ups",
  locale: "en",
  days: 7,
  channels: ["linkedin", "email"]
});

返回的 CampaignPlan 包含 strategy、copy、calendar、来源上下文和 fixture 元数据。

MCP 形态的 stdio 契约

构建后的 server 在 stdin 中每行接受一个 JSON-RPC 2.0 对象,并在 stdout 中每行写入一个响应。它实现了 initialize、tools/list、tools/call 和 notifications/initialized。

echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_campaign","arguments":{"url":"https://example.com","objective":"Aumentar registros","locale":"es"}}}' | node dist/server.js

create_campaign 的结果包含 MCP 文本内容,以及 structuredContent 中的同一个营销活动。无效参数返回 isError: true,并带有结构化的校验问题。发现元数据请参见 service-card.json。

本地开发

需要 Node.js 22.6 或更高版本。

npm ci
npm run test:all

test:all 会对库和 Vercel 处处理器和 Vercel 处理器进行类型检查,运行测试套件,并构建可分发的包。

部署独立的 Vercel 项目

在 Vercel 命令行已通过认证时:

vercel link --project campaign-creator-provider
vercel deploy --prod

已跟踪的 vercel.json 显式构建了三个 serverless 入口。Vercel 本地的 .vercel/ 链接元数据会被忽略,且绝不应提交。

Fixture 边界

该 URL 仅用作营销上下文,绝不会被请求。相同的规范化输入会产生完全相同的输出,包括 campaignId 和 generatedAt。文案属于通用的 fixture 素材,并不代表所引用的网站已被分析。

此仓库和此部署彼此独立。它们不会向 Stellar Bazaar 注册,也不会修改 Stellar Bazaar。

许可证

Apache License 2.0。请参见 LICENSE。

Available Tools

1 tool
create_campaignB

Create a deterministic Spanish or English campaign plan, copy set, and calendar from a URL and objective.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
daysNo
localeNoes
audienceNo
channelsNo
objectiveYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It mentions 'deterministic' but does not clarify whether the tool persists data, requires authentication, or has other side effects. It lacks disclosure of mutation, idempotency, or return behavior, which is a significant gap for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence with no filler. It front-loads the primary action and key attributes (deterministic, Spanish/English) efficiently, making it easy to parse and remember.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 6 parameters, no output schema, and no annotations, the description is inadequate. It does not explain the effect of optional parameters, expected outputs, or usage context, making it incomplete for reliable tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only implicitly explains the two required parameters (URL and objective). The optional parameters (days, locale, audience, channels) are not described at all, leaving agents without guidance on their meaning or selection. This is insufficient for a 6-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Create) on a clear resource (campaign plan, copy set, and calendar) with defined inputs (URL and objective). It also mentions determinism and language options, making the tool's function unambiguous even without sibling tools to differentiate from.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage when you have a URL and an objective, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention optional parameters or exclusions. With no sibling tools listed, a clearer context would be beneficial.

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.

  1. 1 tool updatev0.1.0
    • First observedcreate_campaign

TDQS

A3.6/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool is exposed, so there is no possibility of selecting between overlapping operations. The purpose is immediately clear and unambiguous.

Naming Consistency5/5

The sole tool uses a clean snake_case verb_noun name, create_campaign, which follows common MCP naming conventions. With a single tool, consistency is trivially maintained.

Tool Count3/5

A single tool is on the thin side for a general-purpose server, but create_campaign is a substantial atomic operation that directly covers the provider's stated purpose. It is borderline rather than excessive or trivial.

Completeness4/5

The tool fully delivers the advertised campaign plan, copy set, and calendar generation in one deterministic action. Broader lifecycle operations like list, update, or delete are absent, but they appear outside the scope of a campaign creator.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    MCP server for Publiar that writes LinkedIn lead magnets without fabricating facts, renders matching visuals, publishes to LinkedIn, and tracks engagement, with 19 tools over stdio.
    19
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Zero-dependency stdio bridge to Moltline Studio's fleet of 14 hosted MCP servers covering code review, time operations, data transforms, business ops, education, research, outreach and more. Free tier requires no registration; premium tools unlock with a license. Independently audited, MCPize Verified A.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables generating deterministic, cited research findings from caller-supplied source metadata and excerpts via a local-fixture MCP tool, supporting English and Spanish.
    Apache 2.0