NestDaddy

BlackOps Center

io.github.BlackOpsCenter/blackops-mcp · v1.0.0

Ask your BlackOps brain, capture notes, draft posts, and run your Sorties from any MCP client.

Connect Remote server

Terminal
claude mcp add --transport http blackops-mcp https://mcp.blackopscenter.com/mcp
~/.cursor/mcp.json
{
  "mcpServers": {
    "blackops-mcp": {
      "url": "https://mcp.blackopscenter.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "blackops-mcp": {
      "type": "http",
      "url": "https://mcp.blackopscenter.com/mcp"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://mcp.blackopscenter.com/mcp

Tools 28 found in our last check

  • get_me

    Get current user profile, accessible sites, and account info. Call this first to discover which sites you can manage.

  • get_brand_voice

    Get canonical brand voice for the site. Pass domain or site_id to target a specific site; omit to use the auth default. Always pass the same domain/site_id used with patch_brand_voice so both tools operate on the same record. Also returns pronoun_mode and approved_facts when set…

  • get_recent_notes

    Get recent notes/context for the site. Recommended before creating tweets/posts.

  • get_note

    Get a single note by UUID, slug, or title. Use this to read the full content of individual notes, including brain source notes referenced in a brain manifest. VAULT SYNC STATUS: the response carries a sync block — status is "queued" (commit in flight), "synced" (landed; see file…

  • get_ai_context

    Get AI context pack for content generation. Recommended before creating tweets/posts. Also returns default_site (id, domain, and the rule "unless the user names another site, writes go to <domain>") when the account has one.

  • post_notes

    Create a BlackOps note, or update one in place when source_id resolves to a known note. Requires content_markdown (or transcript/conversation). Prefer this over post_notes_write — richer metadata, dedup, search/list visibility, auto-vault-sync. source_id is the idempotency key:…

  • get_posts

    List blog posts for a site. Filter by status (draft, published) with pagination support.

  • post_posts

    Create a blog draft. Before calling, fetch get_me + get_brand_voice (+ get_ai_context/get_recent_notes). Site scope is automatic for a single-site account; pass domain or site_id to target one, and an account with several sites is asked to choose rather than guessed at. Do NOT r…

  • get_post

    Fetch a single blog post by slug or UUID, including full content, metadata, and SEO fields. One call — no need to list posts first to resolve a slug.

  • patch_posts_by_id

    EDIT ONLY — modifies a post in-place. NEVER call for reading; use post_posts to create. Published edits go live immediately. Always pass base_updated_at (from get_post.updated_at); without it a concurrent edit is silently overwritten. Custom styled HTML needs a richembed fenced…

  • post_posts_by_id_publish

    Publish a draft blog post, making it live on the site. Requires confirm: true. On a 2026-07-28 connection whose client declares form elicitation you may omit it and the user confirms in a dialog; anywhere else, omitting it fails. Publishing a scheduled post publishes it immediat…

  • post_posts_by_id_schedule

    Schedule a draft blog post for future publishing. Provide a datetime via scheduledFor; the platform publishes the post automatically at that time (checked every 5 minutes). Unschedule by patching status back to "draft"; publish immediately with post_posts_by_id_publish. Requires…

  • post_posts_by_id_hero

    Generate (or regenerate) a blog post's hero image, or its OG social card — works the same before and after the post exists. Returns the image inline plus its public URL. The fields below cover prompts, references, style, and the commit:false review flow. Rules that span fields:…

  • post_tweets

    Create a tweet draft. Before calling, fetch get_me + get_brand_voice (+ get_ai_context/get_recent_notes) AND call get_x_accounts for the posting account's max_tweet_length — never assume 280, since Premium/verified accounts go up to 25,000. If max_tweet_length is null the limit…

  • get_x_accounts

    List connected X (Twitter) accounts. Search by username or filter by site. Each account record includes premium (boolean) and max_tweet_length (integer) — ALWAYS read these before drafting tweet content. Premium accounts allow up to 25,000 chars; non-premium are limited to 280.…

  • upload_media

    Upload media to the site media library. Three modes: 1. URL mode — pass file_url + filename + content_type. Fetches server-side, one call, no human step. file_url must be https, SSRF-guarded (blocks private/loopback/link-local/metadata, re-checked on every redirect), capped at 5…

  • get_media_upload_url

    Agent-direct upload, no human step. 1: get_media_upload_url({ domain, filename, content_type, size_bytes? }) returns { asset_id, upload_url, public_url, expires_in }. 2: HTTP PUT the raw bytes to upload_url with a matching Content-Type. 3: finalize_media_upload({ asset_id, domai…

  • finalize_media_upload

    Finalize a presigned URL media upload. Call after uploading to the upload_url from upload_media, or after PUTting bytes directly to an upload_url minted by get_media_upload_url. Needs only { asset_id, domain } plus the same MCP/API token already on this session — no browser or c…

  • get_media

    Get details for a single media asset including URL, dimensions, format, and metadata.

  • list_brains

    List all brains accessible to the authenticated user. Returns each brain's id, name, description, aliases, status, note count, last compiled timestamp, and visibility. Match description and aliases to resolve natural-language references (e.g. "restaurant brain"). Brains are site…

  • get_brain

    Get the compiled knowledge map for a brain: a manifest of source notes with IDs and summaries — call get_note for a note's full content. Site-agnostic. Accepts a UUID, slug, name, or alias; no list_brains lookup needed first (call list_brains for a brain not named in your instru…

  • update_brain

    Add a new note to a brain — no target_id or file path knowledge required; the server resolves storage from the brain record (BlackOps directly for DB-backed brains, a GitHub commit for vault-backed ones). Use this whenever the user says "update the brain", "add this to the brain…

  • get_account_context

    Get account context including defaults and publishing context for a domain. The default site (the site writes go to when the user names none) is stated by get_account_settings and get_ai_context (default_site).

  • list_skills

    List the user's stored skills (slug + description). Call this at the START of a task: if a skill matches what the user asked for, fetch it with get_skill and follow it instead of improvising.

  • search

    Search BlackOps notes and blog posts. Returns id, title, and url per match; pass an id to fetch for the full text. Generated daily notes (note_type "daily", titled "YYYY-MM-DD · {Name}") do not contain the word "daily" in their title — queries containing "daily" automatically in…

  • fetch

    Retrieve the full text of one BlackOps note or blog post by its search id.

  • describe_tools

    Discover the rest of the BlackOps tool catalog. This connector surfaces a small default tool set; every other BlackOps capability (pages, video, brains and brain watches, hunts, sorties, LinkedIn/Threads/Medium, GA4/Search Console analytics, and more) is one lookup away. Call wi…

  • use_tool

    Invoke any BlackOps catalog tool that is not on the default surface, by name. Arguments are validated against the same schema the tool has natively, and the call runs the identical handler with identical permissions — this is dispatch, not a bypass. Look up names and input schem…

Details

Endpointhttps://mcp.blackopscenter.com/mcp (Streamable HTTP)
First published11 Nov 2026
Last updated11 Nov 2026
Registry nameio.github.BlackOpsCenter/blackops-mcp

More productivity servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.