MCP server
Give an assistant one tool per Sourcevine API that takes a URL. Read-only, available locally or over hosted MCP, and reports what each call cost.
@sourcevine/mcp gives an assistant that speaks the Model Context Protocol one
tool per named API that takes a URL: stats, profile, posts and comments on
each platform, plus YouTube transcripts (16 tools). Search, trending and other
query-based APIs are HTTP-only for now. It can run locally over stdio, or through the hosted
Streamable HTTP endpoint at https://mcp.sourcevine.io/mcp.
It is read-only. Nothing in the tool surface posts, follows, messages or
changes anything on any platform, and every tool is annotated readOnlyHint so
a client can skip a confirmation it would otherwise be right to show.
Install
Create a key at app.sourcevine.io/keys. For Claude Code:
claude mcp add sourcevine --env SOURCEVINE_API_KEY=sv_live_... -- npx -y @sourcevine/mcp
For Codex:
codex mcp add sourcevine --env SOURCEVINE_API_KEY=sv_live_... -- npx -y @sourcevine/mcp
Replace the placeholder locally with your key. Both commands configure the local stdio server; Node.js 20.10 or later is required. Start a new client session to load the tools if necessary.
Or, for anything that reads a JSON config:
{
"mcpServers": {
"sourcevine": {
"command": "npx",
"args": ["-y", "@sourcevine/mcp"],
"env": { "SOURCEVINE_API_KEY": "sv_live_..." }
}
}
}
Hosted endpoint
If your MCP client supports remote Streamable HTTP, point it at:
{
"mcpServers": {
"sourcevine": {
"url": "https://mcp.sourcevine.io/mcp",
"headers": { "Authorization": "Bearer sv_live_..." }
}
}
}
The hosted endpoint is stateless. Your key arrives as a bearer token, is used for that request, and is forwarded to the Sourcevine API. The local stdio server stores the key in your client configuration and sends it directly to the Sourcevine API. Either way, Sourcevine receives the key to authenticate API requests.
Tools
One per API, named after it, so an assistant picks an endpoint by name rather than resolving a URL first and hoping.
Examples of tools available for public post reporting:
| Tool | API reference |
|---|---|
tiktok_stats |
TikTok video stats |
instagram_stats |
Instagram post stats |
youtube_stats |
YouTube video stats |
x_stats |
X post stats |
Each tool’s description includes its live credit price. See the API catalog for current prices and response fields. Not-found and private lookups are charged at the operation’s price.
The list is generated from the same catalog that defines the routes, so a tool cannot exist without an API behind it.
Every tool takes a url. List tools also take cursor and limit.
What comes back
The per-platform object documented at sourcevine.io/apis, plus what the call cost:
{
"data": {
"username": "atlas.makes",
"nickname": "Atlas Makes",
"followerCount": 482300,
"videoCount": 618,
"heartCount": 9140000,
"fetchedAt": "2026-08-28T09:41:44Z"
},
"creditsCharged": 1
}
Successful and unavailable results include creditsCharged, or null when
the charge was not reported. Tool errors can return plain text without a charge
field. Treat missing charges as unknown; do not replace them with zero.
Task-specific skills
The free Sourcevine agent skills add focused workflows to these tools: Campaign Report, Competitor Content Brief, and Audience Questions & Objections. Each sets a scope and credit budget, preserves source evidence, and produces files you can reuse. Install your skills after connecting MCP. Skill installation is free; API usage consumes credits.
Things to know
Unavailable is not an error. A private or deleted resource comes back as a
normal result with available: false, charged at the tool’s price like any
lookup:
{
"available": false,
"availability": { "status": "not_found", "reason": null },
"creditsCharged": 1
}
Returning an error here would put an agent in a retry loop on a post that no longer exists.
Use a separate key. Give the server its own key on its own project, so you can see what the assistant spent and revoke it independently of everything else.
Set a balance alert before you find out you needed one.
No contact data. No bios, emails, phone numbers, postal addresses or private-account data or restricted content. That is enforced on the server by an allowlist, not by the package, so it holds however the tools are called. See the privacy boundary.
Source
sourcevine-mcp, MIT licence. npm test covers the tool
surface, the billing defaults, and that the key never travels in a URL.
Last updated 5 October 2026