campaign-creator-provider
Creates bilingual campaign strategies, channel copy, and publishing calendars from a URL and objective via a deterministic, network-free MCP stdio server.
README
Campaign Creator Provider
Independent, local-first TypeScript provider that creates a bilingual campaign strategy, channel copy, and publishing calendar from a URL and an objective. It exposes a typed library API, an MCP-shaped JSON-RPC stdio contract, and a small HTTP API deployed on Vercel.
- Live API: https://campaign-creator-provider.vercel.app
- Health: https://campaign-creator-provider.vercel.app/health
- Repository: https://github.com/CaBsCrypto/campaign-creator-provider
The provider generates deterministic fixture content. It does not fetch the submitted URL, call external services, publish content, persist inputs, or interact with Stellar Bazaar.
Features
- Spanish (
es, default) and English (en) output - Strategy, channel copy, and a configurable 1–30 day calendar
- X, LinkedIn, Instagram, and email channels
- JSON Schema tool definition and structured validation errors
- HTTP, TypeScript, and MCP-shaped stdio entrypoints over one generator
- Network-free deterministic generation
- Apache-2.0 licensed
HTTP API
Discovery
curl https://campaign-creator-provider.vercel.app/
Health
curl https://campaign-creator-provider.vercel.app/health
Create a campaign
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"]}'
Required fields are url (an absolute HTTP/HTTPS URL) and objective. Optional fields are:
| Field | Type | Default | Constraints |
|---|---|---|---|
locale |
"es" | "en" |
"es" |
Supported output language |
days |
integer | 7 |
1–30 |
channels |
array | all channels | One or more of x, linkedin, instagram, email |
audience |
string | localized fixture | Non-empty |
Successful requests return the campaign object directly with HTTP 200. Invalid inputs return HTTP 400 and a stable JSON error object containing validation issues. Routes support CORS and do not cache responses.
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"]
});
The returned CampaignPlan contains strategy, copy, calendar, source context, and fixture metadata.
MCP-shaped stdio contract
The built server accepts one JSON-RPC 2.0 object per line on stdin and writes one response per line on stdout. It implements initialize, tools/list, tools/call, and 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
The create_campaign result includes MCP text content and the same campaign in structuredContent. Invalid arguments return isError: true with structured validation issues. See service-card.json for discovery metadata.
Local development
Node.js 22.6 or newer is required.
npm ci
npm run test:all
test:all type-checks both the library and Vercel handlers, runs the test suite, and builds the distributable package.
Deploy a separate Vercel project
With the Vercel CLI authenticated:
vercel link --project campaign-creator-provider
vercel deploy --prod
The tracked vercel.json explicitly builds the three serverless entrypoints. Vercel’s local .vercel/ link metadata is ignored and must never be committed.
Fixture boundary
The URL is used only as campaign context and is never requested. Identical normalized inputs produce identical output, including campaignId and generatedAt. Copy is generic fixture material, not a claim that the referenced site was analyzed.
This repository and deployment are independent. They do not register with or modify Stellar Bazaar.
License
Apache License 2.0. See LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.