INITIALIZING MCP SERVER...

Context Studios MCP Server

AI-Powered Content Automation API via Model Context Protocol

331 Tools 331 Authenticated · 25 Public Tools 3 Public Resources · 3 Public Prompts MCP 2025-11-25 (current spec) Stateless HTTP · OAuth 2.1 + PKCE 2026-Roadmap-aligned Claude + GPT Compatible

Related Resources

Quick Start for LLMs

For AI Assistants (Claude, GPT, Gemini)

This MCP server provides tools for content automation. For full company info, services, and pricing, see: https://www.contextstudios.ai/llms.txt

  1. Public API (no auth): POST /api/public/mcp - Company info, services, blog, comparisons, glossary, guides, location pages, resources, and prompts (25 tools + 3 resources + 3 prompts)
  2. Authenticated API: POST /api with X-API-Key header or OAuth 2.1 Bearer - Full access (331 tools across 21 categories)

Protocol: JSON-RPC 2.0 over Streamable HTTP (stateless) | Stable spec: MCP 2025-11-25 | Draft compatibility: 2026-07-28 headers are accepted additively for prepared clients.

API Endpoints

POST https://mcp.contextstudios.ai/api/public/mcp No Auth - 25 Tools + Resources + Prompts

Public API for company info, services, pricing, blog, AI glossary (80+ terms in 4 languages), A vs B comparisons (47+ in 4 languages), technical guides, city-specific service pages, public resources (company://profile, pricing://overview, mcp://public-tools), and public prompts. Rate limited to 60 req/min per IP.

POST https://mcp.contextstudios.ai/api X-API-Key or OAuth - 331 Tools

Full MCP API with content creation, publishing, image & video generation, CRM & sales, accounting (SKR03), NDA lifecycle automation, and automation. Rate limits: 60/min public anonymous · 300/min OAuth · 600/min trusted API key.

MCP Protocol Compatibility

This server keeps MCP 2025-11-25 as the production protocol for Claude Code, Claude Desktop, Codex, Cursor, and other stable clients. It also accepts selected 2026-07-28 draft request headers additively, without forcing clients to migrate early.

Stable + Draft Surface

FeatureStatusNotes
server/discover✅ LiveReturns endpoint, capability, auth, and compatibility metadata on both public and authenticated endpoints.
MCP-Protocol-Version: 2026-07-28✅ AcceptedValidated at the edge and normalized to 2025-11-25 before the current SDK transport handles the request.
Mcp-Method / Mcp-Name✅ Enforced for draft requestsDraft requests must match JSON-RPC method and target name/URI to prevent header/body drift.
ttlMs / cacheScope✅ LiveTool, resource, and prompt list responses include cache hints for newer clients while remaining valid for stable clients.

Priority #1 — Transport Evolution & Scalability

Roadmap itemStatusWhere
Stateless HTTP transport
"Servers can scale horizontally without having to hold state"
✅ Live api/index.ts — fresh Server + StreamableHTTPServerTransport({ sessionIdGenerator: undefined }) per request. Each invocation is independent — no session affinity, no sticky routing, drops cleanly into Vercel's serverless model.
Server metadata via .well-known
"Capabilities discoverable without a live connection"
✅ Live /.well-known/mcp.json · /.well-known/mcp/server-card.json · /.well-known/oauth-authorization-server (RFC 8414) · /.well-known/oauth-protected-resource (RFC 9728)

Priority #4 — Enterprise Readiness

ChallengeStatusWhere
Audit trails ✅ Live Every tool call is fingerprinted (SHA-256 of bearer / API key, never the raw token), redacted (PII keys + secret keys removed, strings truncated), and persisted to Convex via fire-and-forget mutation. Source: src/utils/audit.ts + src/utils/audit-logger.ts.
SSO-integrated auth ◐ Partial Full OAuth 2.1 stack: PKCE-S256 mandatory, RFC 7591 Dynamic Client Registration, RFC 8414 Authorization Server Metadata, RFC 9728 Protected Resource Metadata, single-use auth codes, refresh-token rotation, audience validation, scope versioning (scope_v: 2). Pure SSO/OIDC federation not yet wired.
Gateway behavior · Configuration portability ○ Open Tracked, not yet implemented.

Other 2026 Spec Items

ItemStatus
Tasks primitive (SEP-1686) — long-running tools with retry & expiry○ Roadmap (would benefit our video pipeline)
DPoP (SEP-1932) — bind tokens to a holder key, prevent replay○ Watching the proposal
Workload Identity Federation (SEP-1933) — short-lived tokens via OIDC, no shared secret○ Watching the proposal

Why this matters: The stateless transport means we can scale to thousands of concurrent agents without sticky sessions or shared cache. The OAuth stack means Claude Desktop, Claude.ai, Cursor, and any MCP-compliant client can register dynamically and obtain a scoped, audience-bound token via standard PKCE flow — no out-of-band key sharing.

Public Tools, Resources & Prompts (No Authentication)

Available without API key. Ideal for LLMs to learn about Context Studios, discover AI terminology, explore technology comparisons, and start guided project-estimation workflows.

Public Resources & Prompts

resources/list

Resources: company://profile, pricing://overview, and mcp://public-tools. Use these for fast, stable company facts, pricing overview, and public MCP catalog discovery.

prompts/list

Prompts: estimate_ai_project, ask_context_studios, and compare_ai_tools. Use these to guide agents toward the right public tools for common workflows.

Company & Content (8 tools)

get_company_info

Description: Retrieve comprehensive information about Context Studios including company overview, tech stack, differentiators, legal info, and contact details.

What you can do:

  • Get company background and mission statement
  • Learn about the technology stack (Next.js, Convex, Claude, etc.)
  • Understand competitive differentiators
  • Access contact information and booking links

Use cases: When a user asks "What does Context Studios do?", "Who built this MCP server?", or needs company contact info for partnership inquiries.

Arguments: { sections: ["overview", "contact", "tech_stack", "differentiators", "legal"] }

get_services

Description: List all 11 services offered by Context Studios with detailed pricing, timelines, and deliverables across starter, fasttrack, and enterprise tiers.

What you can do:

  • Browse all available services with full descriptions
  • Filter by service tier (starter, fasttrack, enterprise)
  • Get specific service details by ID
  • Compare pricing and timelines across services

Use cases: When a user asks "What services do you offer?", "How much does an MVP cost?", or needs to recommend appropriate services based on project requirements.

Arguments: { category?: "starter" | "fasttrack" | "enterprise" | "all", serviceId?: string }

get_pricing

Description: Get services that match a specific budget range, helping users find affordable options within their financial constraints.

What you can do:

  • Find services under €5,000 (SaaS Setup, Automation)
  • Explore €5k-€20k options (Tool Integration, AI Workshop, MVP Sprint)
  • Discover €20k-€50k solutions (Mobile Apps, Regular MVP)
  • View enterprise €50k+ packages (Full-Scale Dev, Enterprise API)

Use cases: When a user says "I have a €15k budget", "What can I get for under €5,000?", or needs budget-appropriate recommendations.

Arguments: { budget?: "all" | "under_5k" | "5k_20k" | "20k_50k" | "50k_plus" }

get_blog_posts

Description: Search and retrieve published blog posts covering AI development, MCP servers, agent architectures, and software engineering best practices.

What you can do:

  • Search posts by keyword or phrase
  • Filter by tags (AI, MCP, RAG, Agents, etc.)
  • Get post excerpts or full content
  • Limit results for efficient browsing

Use cases: When a user asks "Do you have articles about RAG?", "Show me posts about AI agents", or wants to learn from Context Studios' expertise.

Arguments: { query?: string, tag?: string, limit?: number (max 10), includeContent?: boolean }

search_blog_knowledge

Description: Deep full-text search through the entire blog knowledge base with access to complete article content in multiple languages.

What you can do:

  • Perform full-text search across all blog content
  • Get specific posts by slug
  • Search in German, English, French, or Italian
  • Access complete article content for detailed answers

Use cases: When answering technical questions about AI implementation, finding detailed explanations of concepts, or researching specific topics covered in the blog.

Arguments: { query?: string, slug?: string, language?: "de" | "en" | "fr" | "it", limit?: number (max 15) }

search_content

Description: Universal search across all public content including services, company information, and blog posts in a single query.

What you can do:

  • Search everything at once with one query
  • Find relevant content regardless of type
  • Get ranked results by relevance
  • Quickly answer broad questions about Context Studios

Use cases: When a user has a general question that might be answered by services, blog posts, or company info - "Tell me about MCP" would search all sources.

Arguments: { query: string (required), maxResults?: number }

ai_project_estimator

Description: Interactive AI project estimation tool that calculates costs and timelines based on project type, features, and complexity. Returns a visual UI component.

What you can do:

  • Get cost estimates for MVPs, SaaS, AI integrations, mobile apps
  • Factor in specific features and complexity
  • Receive timeline projections
  • Compare different project approaches

Use cases: When a user asks "How much would an AI chatbot cost?", "Estimate my MVP project", or needs budget planning for a software project.

Arguments: { projectDescription: string (required), projectType?: "mvp" | "saas" | "ai-integration" | "automation" | "mobile-app" | "web-app" | "ai-agent" | "data-pipeline", features?: string[] }

blog_explorer

Description: Interactive blog browsing interface with rich search, tag filtering, and article previews. Returns a visual UI component for exploration.

What you can do:

  • Browse blog posts with visual cards
  • Filter by tags and categories
  • Search within the explorer interface
  • Preview articles before reading full content

Use cases: When a user wants to browse available content, explore topics visually, or discover relevant articles through an interactive interface.

Arguments: { query?: string, slug?: string, tag?: string, language?: "de" | "en" | "fr" | "it", limit?: number }

AI Comparisons (3 tools) - Multilingual

Access 47+ structured A vs B comparisons in 4 languages (DE, EN, FR, IT) covering AI providers, development approaches, technologies, and deployment strategies.

get_comparison

Description: Retrieve a detailed comparison between two AI tools, approaches, or technologies with structured factors, pros/cons, and recommendations.

What you can do:

  • Get Claude vs ChatGPT comparisons for LLM selection
  • Compare RAG vs Fine-tuning for knowledge integration
  • Evaluate build vs buy decisions for AI solutions
  • Access provider comparisons (AWS vs Azure vs GCP)
  • Get comparisons in German, English, French, or Italian

Use cases: When a user asks "Should I use Claude or GPT?", "RAG or fine-tuning for my use case?", or needs help deciding between two AI solutions.

Arguments: { slug: string (required), language?: "de" | "en" | "fr" | "it" (default: "en") } // e.g., "claude-code-vs-github-copilot", "rag-vs-fine-tuning"

list_comparisons

Description: List all available comparisons with optional category and language filtering. Categories include provider, approach, technology, and geography.

What you can do:

  • Browse all 47+ available comparisons in any language
  • Filter by category (provider comparisons, approach comparisons, etc.)
  • Discover comparison topics you didn't know existed
  • Find relevant comparisons for specific decisions

Use cases: When a user wants to see what comparisons are available, needs to find comparisons in a specific category, or is exploring options.

Arguments: { category?: "provider" | "approach" | "technology" | "geography", language?: "de" | "en" | "fr" | "it" (default: "en"), limit?: number (max 20) }

search_comparisons

Description: Search comparisons by keyword to find relevant A vs B analyses matching specific tools, concepts, or use cases.

What you can do:

  • Search for comparisons mentioning specific tools
  • Find comparisons by use case or industry
  • Discover comparisons related to a concept
  • Get ranked results by relevance in any language

Use cases: When a user mentions a specific tool and wants to see how it compares to alternatives, or needs comparisons relevant to their industry.

Arguments: { query: string (required), language?: "de" | "en" | "fr" | "it" (default: "en"), limit?: number (max 10) }

AI Glossary (6 tools) - Multilingual

Access 80+ AI terminology definitions in 4 languages (DE, EN, FR, IT) across 10 categories with related terms, services, and tech stack mappings.

get_glossary_term

Description: Get a detailed explanation of an AI term including definition, related terms, related services, and website URL in any of 4 languages.

What you can do:

  • Explain AI concepts like MCP, RAG, Agentic AI
  • Provide context with related terms
  • Link to relevant Context Studios services
  • Direct users to the full glossary page
  • Get definitions in German, English, French, or Italian

Use cases: When a user asks "What is MCP?", "Explain RAG to me", or needs a clear definition of any AI/ML terminology.

Arguments: { slug: string (required), language?: "de" | "en" | "fr" | "it" (default: "en") } // e.g., "mcp", "agentic-ai", "retrieval-augmented-generation"

search_glossary

Description: Search the AI glossary by keyword or filter by category to find relevant terminology definitions in any language.

What you can do:

  • Search 80+ AI terms by keyword in any language
  • Filter by 10 categories (agentic, infrastructure, safety, etc.)
  • Find terms related to a concept
  • Discover new AI terminology

Use cases: When a user wants to learn about AI safety terms, find all agentic AI concepts, or search for terms matching a keyword.

Arguments: { query?: string, category?: "agentic" | "infrastructure" | "safety" | "engineering" | "compliance" | "economics" | "tech" | "ux" | "future" | "security", language?: "de" | "en" | "fr" | "it" (default: "en"), limit?: number (max 20) }

list_glossary_categories

Description: List all 10 glossary categories with term counts to understand the scope of available AI terminology.

What you can do:

  • See all available categories
  • Understand how many terms are in each category
  • Navigate the glossary by topic area
  • Help users find relevant terminology sections

Use cases: When orienting a user to the glossary, helping them explore by category, or showing the breadth of covered topics.

Arguments: { language?: "de" | "en" | "fr" | "it" (default: "en") }

get_featured_glossary_terms

Description: Get a curated list of featured/important AI terms that are essential for understanding modern AI development.

What you can do:

  • Get the most important AI terms to know in any language
  • Create a quick learning path for AI newcomers
  • Highlight key concepts for specific topics
  • Provide executive-level AI literacy content

Use cases: When a user is new to AI and wants to learn essential terms, or needs a curated list of must-know concepts.

Arguments: { language?: "de" | "en" | "fr" | "it" (default: "en"), limit?: number (max 10) }

get_related_glossary_terms

Description: Get terms that are related to a specific glossary term, enabling exploration of connected concepts.

What you can do:

  • Explore concepts related to a term in any language
  • Build learning paths from one term to related ones
  • Understand the concept ecosystem around a term
  • Deepen knowledge through related terms

Use cases: After explaining MCP, show related terms like "Tool Use", "Agentic AI", and "Claude Code" to expand understanding.

Arguments: { slug: string (required), language?: "de" | "en" | "fr" | "it" (default: "en"), limit?: number (max 5) }

get_glossary_by_tech_stack

Description: Filter glossary terms by technology provider or stack to find terms relevant to specific ecosystems.

What you can do:

  • Find all terms related to OpenAI's ecosystem in any language
  • Get Anthropic/Claude-specific terminology
  • Discover Google AI terms
  • Explore LangChain, Pinecone, or other stack-specific terms

Use cases: When a user is working with a specific tech stack and wants to learn relevant terminology, or comparing terminology across providers.

Arguments: { techStack: string (required), language?: "de" | "en" | "fr" | "it" (default: "en"), limit?: number (max 20) } // e.g., "openai", "anthropic", "google", "langchain"

get_page

Description: Get a specific CMS page by slug and locale. Returns full page content with all sections (hero, features, pricing, FAQ, etc.).

Arguments: { slug: string (required), locale?: "de" | "en" | "fr" | "it" (default: "en") }

search_pages

Description: Full-text search across all published CMS pages. Search page titles, descriptions, and content.

Arguments: { query: string (required), locale?: "de" | "en" | "fr" | "it", limit?: number (default 10) }

Guides & Location Pages (6 tools)

Browse technical guides and city-specific AI agency pages across all locales.

list_guides

Description: List all available technical guides with titles, descriptions, and slugs.

Arguments: { locale?: "de" | "en" | "fr" | "it", limit?: number }

get_guide

Description: Get a specific guide by slug with full content and metadata.

Arguments: { slug: string (required), locale?: "de" | "en" | "fr" | "it" }

search_guides

Description: Search guides by keyword or topic across all locales.

Arguments: { query: string (required), locale?: "de" | "en" | "fr" | "it", limit?: number }

list_location_pages

Description: List city-specific AI agency landing pages with service descriptions.

Arguments: { locale?: "de" | "en" | "fr" | "it", limit?: number }

get_location_page

Description: Get a specific location page by slug with sections and metadata.

Arguments: { slug: string (required), locale?: "de" | "en" | "fr" | "it" }

search_location_pages

Description: Search location pages by city or region name.

Arguments: { query: string (required), locale?: "de" | "en" | "fr" | "it", limit?: number }

Authenticated Tools (API Key or OAuth Required) - 331 Tools

Full content automation capabilities for blog management, social media publishing, image generation, SEO optimization, and AI-powered content creation.

🔍 Research & News (8 tools)

AI-powered research tools combining web search, knowledge bases, and trend analysis for content ideation.

search_web

Description: Perform AI-powered web search using Tavily with intelligent answer summarization and source extraction.

What you can do: Search the web for current information, get AI-summarized answers with citations, research competitors, find latest news and trends.

Use cases: Research before writing blog posts, fact-check information, find current statistics, competitive analysis.

Arguments: { query: string (required), maxResults?: number (default: 5), topic?: "general" | "news" }

research_topic

Description: Comprehensive topic research combining multiple sources with configurable depth for thorough content preparation.

What you can do: Deep dive into any topic with quick, standard, or deep research modes. Get structured findings, key insights, and content angles.

Use cases: Pre-writing research for authoritative blog posts, understanding new topics, gathering expert perspectives.

Arguments: { topic: string (required), depth?: "quick" | "standard" | "deep" }

get_latest_news

Description: Get the latest news articles on any topic with recency-focused results.

What you can do: Find breaking news, recent developments, and timely content for topical blog posts.

Use cases: News roundup posts, staying current on industry developments, timely content creation.

get_latest_info

Description: Deep research combining Tavily web search with Gemini AI analysis for comprehensive, current information.

What you can do: Get thoroughly researched, AI-analyzed information on any topic with synthesis of multiple sources.

Use cases: In-depth research for thought leadership content, complex topic exploration, authoritative content creation.

Arguments: { topic: string (required) }

search_knowledge_base

Description: Search Context Studios' internal blog content and knowledge base for existing expertise and content.

What you can do: Find existing blog posts on topics, avoid duplicate content, discover internal linking opportunities.

Use cases: Content planning, internal linking strategy, finding content to update or expand.

suggest_topics

Description: AI-generated blog topic suggestions based on trends, gaps, and audience interests.

What you can do: Get fresh content ideas, discover trending topics to cover, fill content gaps.

Use cases: Editorial calendar planning, content ideation sessions, overcoming writer's block.

get_trending_topics

Description: Get currently trending topics in AI and technology for timely content creation.

What you can do: Identify trending discussions, find viral topic angles, capitalize on current interest.

Use cases: Newsjacking opportunities, trending content creation, social media topic selection.

analyze_content_gaps

Description: Identify content gaps in the existing blog by analyzing coverage vs. industry topics.

What you can do: Find topics not yet covered, identify underserved keyword opportunities, plan strategic content.

Use cases: Content strategy planning, SEO gap analysis, competitive content positioning.

📝 Blog Management (26 tools)

Complete blog content lifecycle management with multilingual support (DE, EN, FR, IT).

create_blog_post

Description: Create a new blog post with full metadata, SEO tags, and multilingual support.

What you can do: Create posts in German, English, French, or Italian with title, content (Markdown), excerpt, tags, and SEO metadata.

Use cases: Publishing new articles, creating draft content, building multilingual blog presence.

Arguments: { title: string, content: string (Markdown), locale: "de" | "en" | "fr" | "it", excerpt?: string, slug?: string, tags?: string[], metaTitle?: string (max 60), metaDescription?: string (max 160) }

update_blog_post

Description: Update any aspect of an existing blog post including content, metadata, or SEO properties.

What you can do: Edit content, update title/slug, modify tags, refresh SEO metadata, change publication date.

Use cases: Content updates, SEO improvements, fixing errors, refreshing outdated content.

Arguments: { postId?: string, slug?: string, locale?: string, updates: object }

publish_blog_post

Description: Publish a draft blog post, making it live on the website.

What you can do: Move posts from draft to published status, trigger cache invalidation, update sitemaps.

Use cases: Content go-live, scheduled publishing workflows, content approval processes.

Arguments: { postId?: string, slug?: string, locale?: string }

translate_blog_post

Description: AI-powered translation of blog posts using Claude for high-quality, context-aware translations.

What you can do: Translate between DE, EN, FR, IT while preserving formatting, tone, and technical accuracy.

Use cases: Multilingual content strategy, international audience expansion, localization workflows.

Arguments: { slug: string, sourceLocale: string, targetLocale: string }

save_blog_translations

Description: Link translated posts together for the website's language switcher functionality.

What you can do: Connect DE/EN/FR/IT versions of the same post so users can switch languages seamlessly.

Use cases: Multilingual site management, translation workflow completion, user experience improvement.

Arguments: { germanSlug: string, translations: { en?: string, fr?: string, it?: string } }

schedule_blog_post

Description: Schedule a blog post for future publication at a specific date and time.

What you can do: Plan content calendar, queue posts for optimal publishing times, coordinate with campaigns.

Use cases: Editorial calendar management, time-zone optimized publishing, campaign coordination.

Arguments: { postId?: string, slug?: string, locale?: string, scheduledFor: string (ISO 8601) }

write_blog_content

Description: AI-generate full blog post content from an outline using Claude.

What you can do: Transform outlines into complete, well-structured blog posts with proper formatting and tone.

Use cases: Accelerated content creation, scaling content production, draft generation.

list_blog_posts

Description: List blog posts from the database with optional filters for status and language.

What you can do: Browse all posts, filter by draft/published status, filter by language (DE, EN, FR, IT).

Use cases: Content auditing, finding posts to update, editorial calendar management.

Arguments: { status?: "draft" | "published" | "pending_review" | "approved", language?: "de" | "en" | "fr" | "it", limit?: number (default: 20) }

get_blog_post

Description: Get a single blog post by its slug with full content and metadata.

What you can do: Retrieve complete post content, metadata, translations, and publishing status.

Use cases: Content review, preparing updates, checking translation status.

Arguments: { slug: string (required), language?: string }

unpublish_blog_post

Description: Take a published blog post offline by setting it back to draft status. The post remains in the database but is no longer publicly visible.

What you can do: Temporarily hide posts for updates, revert accidental publishes, take down outdated content.

Use cases: Content maintenance, fixing errors on live posts, seasonal content management.

Arguments: { postId: string (required) }

delete_blog_post

Description: Permanently delete a blog post. This action cannot be undone. Requires explicit confirmation.

What you can do: Remove posts permanently, clean up test content, delete obsolete articles.

Use cases: Database cleanup, removing duplicate content, deleting test posts.

Arguments: { postId: string (required), confirm: boolean (must be true) }

archive_blog_post

Description: Archive a blog post (soft delete). The post is unpublished and marked as archived but not permanently deleted.

What you can do: Safely remove posts while preserving them, track archival reasons, enable recovery.

Use cases: Retiring outdated content, preserving historical posts, safe content removal.

Arguments: { postId: string (required), reason?: string }

restore_blog_post

Description: Restore an archived blog post back to draft status for editing and republishing.

What you can do: Recover archived content, bring back seasonal posts, undo archival.

Use cases: Content recovery, seasonal republishing, reversing archival decisions.

Arguments: { postId: string (required) }

duplicate_blog_post

Description: Create a copy of an existing blog post as a new draft. Useful for creating similar content or templates.

What you can do: Clone posts as starting points, create content templates, duplicate for translation.

Use cases: Content templates, series creation, reusing successful formats.

Arguments: { postId: string (required), newTitle?: string, language?: "de" | "en" | "fr" | "it" }

get_draft_posts

Description: List all draft posts that need attention, with details on what's missing before publishing.

What you can do: Find incomplete drafts, identify missing metadata, prioritize content work.

Use cases: Editorial workflow management, content queue review, finding abandoned drafts.

Arguments: { language?: "de" | "en" | "fr" | "it", limit?: number (default: 20) }

get_draft_preview_url

Description: Generate a preview URL for a draft post before publishing for review purposes.

What you can do: Preview unpublished content, share drafts for review, test formatting.

Use cases: Content review workflow, stakeholder approval, pre-publish checking.

Arguments: { postId: string (required) }

validate_blog_post

Description: Pre-publish validation checklist. Checks all requirements before a post can be published.

What you can do: Verify SEO metadata, check required fields, validate content length, ensure image presence.

Use cases: Quality assurance, pre-publish checks, identifying missing elements.

Arguments: { postId: string (required) }

bulk_update_posts

Description: Update multiple posts at once. Useful for adding tags, fixing meta descriptions, or batch updates.

What you can do: Add/remove tags across posts, append text to meta descriptions, batch metadata updates.

Use cases: Content migration, tag reorganization, bulk SEO improvements.

Arguments: { postIds: string[] (required), updates: { addTags?: string[], removeTags?: string[], metaDescriptionSuffix?: string }, dryRun?: boolean (default: true) }

check_translation_status

Description: Check which blog posts need translations for each language. Helps prioritize translation work.

What you can do: Find untranslated posts, track translation completeness, prioritize translation queue.

Use cases: Multilingual content management, translation workflow, coverage analysis.

Arguments: { language?: "en" | "fr" | "it", limit?: number (default: 20) }

delete_blog_translations

Description: Remove translations from a blog post for specific languages.

What you can do: Clean up outdated translations, remove incorrect translations, manage language versions.

Use cases: Translation management, removing obsolete versions, language cleanup.

Arguments: { postId: string (required), languages: ("en" | "fr" | "it")[] (required) }

sync_translations

Description: Find posts that exist as standalone in other languages but should be linked to German parent posts.

What you can do: Identify orphaned translations, auto-link related posts, fix translation relationships.

Use cases: Database cleanup, translation linking, content organization.

Arguments: { autoFix?: boolean (default: false, just report) }

compare_translations

Description: Compare a German post with its translations to check for completeness and consistency.

What you can do: Identify translation gaps, compare content length, verify key sections are translated.

Use cases: Translation quality assurance, content parity checking, update tracking.

Arguments: { postId: string (required), targetLanguage?: "en" | "fr" | "it" (default: all) }

get_blog_analytics

Description: Get analytics data for blog posts including views and engagement.

Arguments: { postId?: string, slug?: string }

compare_posts

Description: Compare two blog posts side-by-side on key metrics.

Arguments: { postIdA: string, postIdB: string }

get_publishing_history

Description: Get publication history and status changes for a post.

Arguments: { postId: string }

diagnose_publish_failure

Description: Diagnose why a blog post failed to publish.

Arguments: { postId: string }
📱 Social Media Publishing (8 tools)

Multi-platform social media publishing via Typefully (X, LinkedIn, Threads, Bluesky, Mastodon) and Meta APIs (Facebook, Instagram).

create_social_post

Description: AI-generate platform-optimized social media content from source material.

What you can do: Transform blog posts or content into platform-specific posts respecting character limits and best practices.

Use cases: Content repurposing, social media adaptation, multi-platform content strategy.

Arguments: { content: string, platform: string }

publish_to_social

Description: Publish to multiple social platforms simultaneously via Typefully integration.

What you can do: Post to X/Twitter (280 chars), LinkedIn (3000 chars), Threads (500 chars), Bluesky (300 chars), Mastodon (500 chars) with optional images or PDF carousel documents.

Use cases: Coordinated social campaigns, blog post promotion, announcements across platforms, LinkedIn PDF carousels.

Arguments: { content: string, platforms: ["x", "linkedin", "threads", "bluesky", "mastodon"], imageUrl?: string, documentUrl?: string }

schedule_social

Description: Schedule social media posts for future publishing at optimal times.

What you can do: Queue posts for specific dates/times, plan social calendar, coordinate with content releases.

Use cases: Social media calendar, launch campaigns, consistent posting schedules.

Arguments: { content: string, platforms: string[], scheduledFor: string (ISO 8601) }

publish_to_facebook

Description: Publish directly to Facebook Page via Meta Graph API.

What you can do: Post text, images, and links to Facebook business pages.

Use cases: Facebook marketing, page content management, cross-platform campaigns.

Arguments: { content: string, imageUrl?: string, link?: string }

publish_to_instagram

Description: Publish to Instagram business account via Meta API.

What you can do: Post images with captions (max 2200 chars) to Instagram business accounts.

Use cases: Visual content marketing, Instagram strategy, brand presence.

Arguments: { caption: string (max 2200), imageUrl: string (required) }

get_social_status

Description: Get the status of published or scheduled social media posts via Typefully. Verify posts were published successfully.

What you can do: Check if posts went live, view scheduled posts, verify publishing across accounts.

Use cases: Publishing verification, scheduled post tracking, troubleshooting failed posts.

Arguments: { draftId?: string, account?: "company" | "personal", limit?: number (default: 10) }

list_social_sets

Description: List all Typefully social sets (accounts) available for publishing.

What you can do: View connected accounts, get account IDs for publishing, check available platforms.

Use cases: Account configuration, multi-account publishing setup, verifying connections.

Arguments: none

adapt_social

Description: Adapt content for a specific social media platform.

Arguments: { content: string, platform: string }
📘 Facebook Management (6 tools)

Manage Facebook Page posts via Meta Graph API - read, update, delete posts and access analytics.

get_facebook_posts

Description: List recent posts from your Facebook Page with IDs, content, images, and metadata.

What you can do: Browse page posts, get post IDs for other operations, review published content.

Use cases: Content auditing, finding post IDs, reviewing publishing history.

Arguments: { limit?: number (default: 10, max: 100) }

get_facebook_post

Description: Get details of a single Facebook post by its ID including message, image, and creation time.

What you can do: View full post details, verify content, check post metadata.

Use cases: Content verification, preparing updates, post review.

Arguments: { postId: string (required) }

delete_facebook_post

Description: Permanently delete a Facebook Page post. Only posts created by your app can be deleted.

What you can do: Remove outdated posts, delete test content, clean up page feed.

Use cases: Content cleanup, removing outdated promotions, fixing mistakes.

Arguments: { postId: string (required), confirm: boolean (must be true) }

update_facebook_post

Description: Update the message/content of an existing Facebook post. Note: Photo posts have limited update support.

What you can do: Edit post text, fix typos, update information in existing posts.

Use cases: Correcting errors, updating information, content refinement.

Arguments: { postId: string (required), message: string (required) }

get_facebook_post_insights

Description: Get analytics for a specific Facebook post including impressions, reach, engagement, clicks, and reactions.

What you can do: Track post performance, measure engagement, analyze reach and reactions.

Use cases: Performance reporting, identifying top posts, content strategy optimization.

Arguments: { postId: string (required) }

get_facebook_page_insights

Description: Get page-level analytics including impressions, reach, engagement, and follower count over a time period.

What you can do: Monitor overall page performance, track follower growth, measure engagement trends.

Use cases: Weekly/monthly reporting, growth tracking, strategy evaluation.

Arguments: { period?: "day" | "week" | "days_28" (default: week) }
📸 Instagram Management (6 tools)

Manage Instagram Business account content and comments via Meta Graph API.

get_instagram_media

Description: List recent posts from your Instagram Business account with IDs, captions, media types, and engagement metrics.

What you can do: Browse Instagram posts, get media IDs, view likes and comment counts.

Use cases: Content auditing, finding media IDs for insights, reviewing performance.

Arguments: { limit?: number (default: 10, max: 100) }

get_instagram_insights

Description: Get analytics for a specific Instagram post including impressions, reach, engagement, and saves.

What you can do: Track post performance, measure reach vs impressions, analyze engagement rate.

Use cases: Performance reporting, identifying viral content, content strategy.

Arguments: { mediaId: string (required) }

get_instagram_comments

Description: List comments on an Instagram post with usernames, text, and timestamps.

What you can do: Read all comments, monitor engagement, find comments to respond to.

Use cases: Community management, sentiment analysis, engagement monitoring.

Arguments: { mediaId: string (required), limit?: number (default: 20) }

delete_instagram_comment

Description: Delete a comment from an Instagram post. You can only delete comments on your own posts.

What you can do: Remove spam comments, delete inappropriate content, moderate discussions.

Use cases: Comment moderation, spam removal, brand protection.

Arguments: { commentId: string (required), confirm: boolean (must be true) }

reply_to_instagram_comment

Description: Reply to a comment on an Instagram post. Creates a threaded reply under the original comment.

What you can do: Respond to followers, answer questions, engage with community.

Use cases: Community engagement, customer support, building relationships.

Arguments: { commentId: string (required), message: string (required) }

toggle_instagram_comments

Description: Enable or disable comments on an Instagram post.

What you can do: Turn off comments on sensitive posts, re-enable comments, control engagement.

Use cases: Managing controversial posts, preventing spam, controlling narrative.

Arguments: { mediaId: string (required), enabled: boolean (required) }
🎨 Image Generation (11 tools)

AI-powered image generation via Google Gemini with 11+ visual styles and platform-specific optimization.

generate_hero_image

Description: Generate content-focused hero images using Gemini with 8 visual directions and 11+ styles.

What you can do: Create blog hero images, article headers, and feature graphics in styles like modern-professional, tech-gradient, minimal-abstract, context-brand.

Use cases: Blog post headers, landing page visuals, article featured images.

Arguments: { topic: string, style?: "auto" | "modern-professional" | "tech-gradient" | "minimal-abstract" | "vibrant-creative" | "soft-organic" | "dark-elegant" | "isometric-3d" | "flat-illustration" | "photo-realistic" | "cinematic" | "context-brand" }

generate_blog_image

Description: Generate 16:9 aspect ratio blog header images at 2K resolution.

What you can do: Create perfectly sized blog headers optimized for web display and social sharing.

Use cases: Consistent blog visual identity, professional article headers, social preview images.

Arguments: { topic: string, style: string }

generate_social_image

Description: Generate platform-optimized images with correct dimensions for each social network.

What you can do: Create images sized for LinkedIn, X/Twitter, Instagram, or Facebook with platform-specific optimization.

Use cases: Social media campaigns, platform-specific visuals, coordinated marketing.

Arguments: { topic: string, platform: "linkedin" | "x" | "instagram" | "facebook", style: string }

upload_image_to_storage

Description: Upload base64 image data to Convex storage. Returns a public URL that can be used as featuredImageUrl for blog posts.

What you can do: Upload custom images, store generated images, get permanent URLs for content.

Use cases: Custom hero images, uploading external images, image asset management.

Arguments: { base64Data: string (required), filename: string (required), mimeType?: "image/png" | "image/jpeg" | "image/webp" }

list_image_styles

Description: List all available image generation styles/visual directions for the generate_hero_image tool.

What you can do: Browse 11+ visual styles, understand style options, choose appropriate aesthetics.

Use cases: Style exploration, consistent branding, choosing visual direction.

Arguments: { includeLegacy?: boolean (default: true) }

regenerate_image

Description: Regenerate a hero image for a blog post with a custom prompt or different style.

What you can do: Try different visual styles, use custom prompts, iterate on image generation.

Use cases: Image refinement, style experimentation, fixing unsatisfactory images.

Arguments: { postId: string (required), customPrompt?: string, style?: "auto" | "editorial-photo" | "overhead-flatlay" | "analog-metaphor" | "data-landscape" | "torn-editorial" | "bold-graphic" | "real-workspace" | "conceptual-still-life" | "photo-realistic" | "cinematic" | "flat-illustration" | "isometric-3d" }

get_image_history

Description: List blog posts with their featured images to track image generation history.

What you can do: Review generated images, find posts without images, audit image coverage.

Use cases: Image auditing, finding missing images, tracking generation history.

Arguments: { hasImage?: boolean (filter: true = with images, false = without), limit?: number (default: 20) }

generate_images

Description: Generate images for a blog post including hero image and/or social media images for multiple platforms.

What you can do: Generate hero and social images in one call, create platform-optimized visuals, batch image creation.

Use cases: Complete visual package generation, social media campaign images, multi-platform content.

Arguments: { postId: string (required), types?: ("hero" | "linkedin" | "instagram" | "facebook" | "twitter")[], style?: string }
🔎 SEO & Indexing (13 tools)

AI-powered SEO tools for keyword research, meta tag generation, content optimization, and internal linking.

generate_keywords

Description: Generate primary, secondary, and long-tail keywords for any topic.

What you can do: Get comprehensive keyword lists for content planning, including search volume estimates and difficulty.

Use cases: Content SEO planning, keyword targeting, topic cluster development.

Arguments: { topic: string }

generate_meta_tags

Description: Generate optimized SEO meta title (max 60 chars) and description (max 160 chars).

What you can do: Create click-worthy, keyword-optimized meta tags that improve search rankings and CTR.

Use cases: Blog post SEO, page optimization, improving search appearance.

Arguments: { title: string, targetKeyword: string, content?: string }

generate_outline

Description: Generate SEO-optimized blog post outlines with heading structure and key points.

What you can do: Create comprehensive outlines targeting specific keywords with proper H2/H3 structure.

Use cases: Content planning, writer briefs, structured content creation.

Arguments: { topic: string, targetKeyword?: string, customInstructions?: string }

suggest_internal_links

Description: AI analyzes content and suggests relevant internal linking opportunities.

What you can do: Find existing blog posts to link to, improve site structure, boost SEO through internal linking.

Use cases: Internal linking strategy, content interconnection, SEO improvement.

Arguments: { content: string }

inject_internal_links

Description: Automatically insert internal links into Markdown content at appropriate positions.

What you can do: Add links to specified anchor texts, automate internal linking process.

Use cases: Automated linking, content optimization, link injection.

Arguments: { content: string (Markdown), links: [{ anchor: string, url: string }] }

analyze_seo_score

Description: Comprehensive SEO analysis with score (0-100), grade (A-F), and detailed recommendations.

What you can do: Get actionable SEO feedback, identify optimization opportunities, track content quality.

Use cases: Pre-publish SEO check, content quality assurance, optimization guidance.

Arguments: { content: string, targetKeyword: string }

check_seo_health

Description: Bulk SEO analysis across all published posts. Identifies posts that need SEO improvements with scores and recommendations.

What you can do: Audit entire blog SEO, find low-scoring posts, prioritize SEO fixes across content.

Use cases: SEO auditing, content quality improvement, identifying optimization opportunities.

Arguments: { minScore?: number (default: 70), limit?: number (default: 50) }

submit_to_gsc

Description: Submit a URL to Google Search Console Indexing API for faster crawling and indexing.

What you can do: Request Google to crawl and index a specific URL immediately after publishing or updating content.

Use cases: New blog post indexing, updated content re-crawling, fast search visibility.

Arguments: { url: string }

check_gsc_index_status

Description: Check the current indexing status of a URL in Google Search Console.

What you can do: Verify whether a URL has been indexed, check last crawl time, and see indexing state.

Use cases: Post-publish verification, indexing troubleshooting, SEO monitoring.

Arguments: { url: string }

bulk_submit_to_gsc

Description: Batch submit multiple URLs to Google Search Console Indexing API (max 200/day).

What you can do: Submit up to 200 URLs at once for indexing — ideal for bulk content publishing or site migrations.

Use cases: Bulk content indexing, site migration, batch SEO updates.

Arguments: { urls: string[] }

batch_index_location_pages

Description: Batch submit all city location pages (/de/standorte/* and /locations/*) to Google Indexing API.

What you can do: Submit up to 200 location pages per day — ideal after bulk content updates for 50+ German cities.

Use cases: City landing page indexing, post-bulk-update reindexing.

Arguments: { locale?: "de" | "en", limit?: number }

batch_index_bundesland_pages

Description: Batch submit all Bundesland pages (/de/bundeslaender/* and /bundeslaender/*) to Google Indexing API. Covers all 16 German states x services.

What you can do: Submit up to 200 German state service pages per day after new content generation or updates.

Use cases: Bundesland landing page indexing, state-level SEO push, post-content-generation indexing.

Arguments: { locale?: "de" | "en", limit?: number }

optimize_seo

Description: Run full SEO optimization pass on content.

Arguments: { content: string, targetKeyword?: string }
🚀 Content Pipeline (7 tools)

End-to-end content campaign automation with 7-step pipeline: Research → Outline → Write → SEO → Social → Images → Schedule.

create_campaign

Description: Initialize a new content campaign with topic, language, target platforms, and automation settings.

What you can do: Start orchestrated content creation across blog and social platforms with configurable automation levels.

Use cases: Content launches, multi-platform campaigns, automated content workflows.

Arguments: { topic: string, locale: "de" | "en" | "fr" | "it", platforms: ["blog", "linkedin", "x", "instagram", "facebook", "threads", "bluesky", "mastodon"], targetAudience?: string, tone?: "professional" | "casual" | "technical" | "friendly", automationLevel?: "full_auto" | "semi_auto" | "guided" }

get_campaign_status

Description: Track campaign progress with step-by-step status, outputs, and completion percentage.

What you can do: Monitor pipeline execution, see intermediate outputs, track remaining steps.

Use cases: Campaign monitoring, workflow tracking, progress reporting.

Arguments: { campaignId: string }

list_campaigns

Description: List all content campaigns with their current status and progress.

What you can do: View all campaigns, filter by status, track campaign progress across the pipeline.

Use cases: Campaign management, workflow overview, identifying stalled campaigns.

Arguments: { status?: "in_progress" | "published" | "failed" | "all", limit?: number (default: 20) }

update_campaign

Description: Update campaign settings, topic, or automation level.

What you can do: Modify campaign configuration, change target audience, update automation settings.

Arguments: { campaignId: string (required), topic?: string, automationLevel?: string, targetAudience?: string }

get_content_stats

Description: Get content statistics across all channels.

Arguments: { period?: string }

get_post_analytics

Description: Get detailed analytics for a specific post.

Arguments: { postId: string }

run_research

Description: Run research step of the content pipeline.

Arguments: { campaignId: string }

run_pipeline

Description: Run a single pipeline step for a campaign.

Arguments: { campaignId: string, step: string }

run_pipeline_full

Description: Run the full content pipeline end-to-end.

Arguments: { campaignId: string }
📄 CMS Page Management (19 tools) - NEW

Full CMS page management system. Manages all CMS pages including 82 SEO landing pages (328 documents across 4 locales DE/EN/FR/IT). Supports CRUD, section editing, translation, validation, diffing, and bulk operations.

list_cms_pages

Description: List CMS pages with filters for locale, page type, status, and search. Returns page summaries without full section data.

What you can do: Browse all landing pages, filter by type (landing, marketing, service), search by title, paginate results.

Use cases: Content auditing, finding pages to edit, reviewing page inventory.

Arguments: { locale?: "de" | "en" | "fr" | "it", pageType?: string, status?: "draft" | "published" | "archived", search?: string, limit?: number }

get_cms_page

Description: Get a full CMS page by slug and locale, including all sections (hero, features, process, tech, FAQ, CTA, etc.).

What you can do: Retrieve complete page content with all sections, metadata, and structured data for editing or review.

Use cases: Page content review, preparing edits, checking section structure.

Arguments: { slug: string (required), locale?: "de" | "en" | "fr" | "it" (default: "de") }

create_cms_page

Description: Create a new CMS page with meta, sections, and optional structured data. Supports all page types.

What you can do: Create new landing pages, service pages, or marketing pages with full section content.

Use cases: New landing page creation, content expansion, multilingual page setup.

Arguments: { slug: string, locale: string, pageType: string, meta: object, sections: array, parentSlug?: string, status?: string, structuredData?: object }

update_cms_page

Description: Update a CMS page's meta, sections, status, or structured data. Only provided fields are updated — partial updates supported.

What you can do: Edit SEO metadata (title, description, keywords), replace sections, change publication status, update structured data.

Use cases: SEO optimization, content updates, publishing/unpublishing pages.

Arguments: { slug: string, locale: string, meta?: object, sections?: array, status?: "draft" | "published" | "archived", structuredData?: object }

delete_cms_page

Description: Soft-delete (archive) a CMS page. The page can be restored later by updating status back to draft/published.

Arguments: { slug: string, locale: string }

duplicate_cms_page

Description: Clone a CMS page to another locale for translation. Copies all sections and metadata.

Arguments: { slug: string, sourceLocale: string, targetLocale: string, targetSlug?: string }

update_cms_section

Description: Update a single section within a CMS page by section ID. Supports partial section data updates and visibility toggling.

What you can do: Edit individual hero, features, FAQ, CTA sections without touching other sections.

Arguments: { slug: string, locale: string, sectionId: string, data: object, visible?: boolean }

add_cms_section

Description: Add a new section to a CMS page at a specific position.

Arguments: { slug: string, locale: string, section: { id: string, type: string, data: object, visible?: boolean }, position?: number }

remove_cms_section

Description: Remove a section from a CMS page by section ID.

Arguments: { slug: string, locale: string, sectionId: string }

reorder_cms_sections

Description: Reorder sections within a CMS page by providing section IDs in the desired order.

Arguments: { slug: string, locale: string, sectionIds: string[] }

translate_cms_page

Description: Auto-translate a CMS page to another locale using AI. Translates all sections and metadata.

Arguments: { slug: string, sourceLocale: string, targetLocale: string }

search_cms_pages

Description: Full-text search across CMS pages by title, content, and metadata.

Arguments: { query: string, locale?: string, pageType?: string, status?: string, limit?: number }

validate_cms_page

Description: Check a CMS page for SEO completeness: meta title/description lengths, missing fields, section issues, and optimization recommendations.

Arguments: { slug: string, locale?: string (default: "de") }

diff_cms_page

Description: Compare a CMS page across two locales to find missing or different sections. Useful for translation QA.

Arguments: { slug: string, localeA: string, localeB: string }

preview_cms_page

Description: Generate a preview URL for a CMS page. Works for both drafts and published pages.

Arguments: { slug: string, locale?: string (default: "de") }

get_cms_stats

Description: Overview statistics: page counts by locale, type, and status.

Arguments: none

generate_cms_sitemap

Description: Generate sitemap entries for all published CMS pages with URLs and last modified dates.

Arguments: { locale?: string }

bulk_create_cms_pages

Description: Create multiple CMS pages at once (max 50). Useful for seeding content or batch translations.

Arguments: { pages: array (max 50) }

bulk_update_cms_meta

Description: Mass-update SEO metadata (title, description, keywords) for multiple CMS pages at once.

Arguments: { updates: array (max 100, each: { slug, locale, meta }) }
🏗️ Landing Pages (8 tools) - NEW

CRUD and content generation for SEO landing pages across 5 tiers.

list_landing_pages

Description: List all landing pages with optional filters.

Arguments: { tier?: string, locale?: string, limit?: number }

get_landing_page

Description: Get a landing page by slug with all sections.

Arguments: { slug: string, locale?: string }

create_landing_page

Description: Create a new SEO landing page with sections.

Arguments: { slug: string, locale: string, tier: string, sections: array }

update_landing_page

Description: Update an existing landing page content or meta.

Arguments: { slug: string, locale?: string, updates: object }

publish_landing_page

Description: Publish a draft landing page to production.

Arguments: { slug: string, locale?: string }

delete_landing_page

Description: Delete a landing page permanently.

Arguments: { slug: string, locale?: string }

validate_landing_page

Description: Validate landing page content before publishing.

Arguments: { slug: string, locale?: string }

generate_landing_page_content

Description: AI-generate content for a landing page by tier.

Arguments: { slug: string, tier: string, locale?: string }
📍 Guides & Location Pages (6 tools) - NEW

Manage guide content and location-specific SEO pages.

list_guides

Description: List all available content guides.

Arguments: { limit?: number }

get_guide

Description: Get a specific guide by slug.

Arguments: { slug: string }

search_guides

Description: Search guides by keyword or topic.

Arguments: { query: string, limit?: number }

list_location_pages

Description: List all location-specific SEO pages.

Arguments: { locale?: string, limit?: number }

get_location_page

Description: Get a location page by city or region slug.

Arguments: { slug: string, locale?: string }

search_location_pages

Description: Search location pages by city or region name.

Arguments: { query: string, locale?: string, limit?: number }
✏️ Comparisons (3 tools)

Create, update, and delete A vs B technology comparisons in the Convex database.

create_comparison

Description: Create a new A vs B comparison with structured factors, pros/cons, and recommendations.

What you can do: Add new technology comparisons to the database with full metadata for the comparisons page.

Use cases: Expanding comparison library, documenting new tool evaluations, building decision resources.

Arguments: { slug: string, title: string, itemA: string, itemB: string, category: string, summary: string, keyDifferences?: string[], prosA?: string[], prosB?: string[], consA?: string[], consB?: string[], recommendation?: string, featured?: boolean }

update_comparison

Description: Update an existing comparison with new information, updated factors, or revised recommendations.

What you can do: Keep comparisons current as tools evolve, add new factors, update recommendations.

Use cases: Maintaining accuracy, updating after product changes, improving comparison quality.

Arguments: { slug: string, ...updates }

delete_comparison

Description: Permanently remove a comparison from the database.

What you can do: Remove outdated or irrelevant comparisons, clean up content library.

Use cases: Content maintenance, removing obsolete comparisons, database cleanup.

Arguments: { slug: string }
📚 Glossary (7 tools) - NEW

Create, update, delete, and list AI glossary terms in the Convex database.

list_glossary_terms

Description: List all glossary terms with optional filters.

Arguments: { category?: string, limit?: number }

create_glossary_term

Description: Create a new AI glossary term with full definition, category, related terms, and metadata.

What you can do: Add new AI terminology to the glossary with rich metadata and relationships.

Use cases: Expanding glossary coverage, documenting new AI concepts, building educational content.

Arguments: { slug: string, term: string, description: string, category: "agentic" | "infrastructure" | "safety" | "engineering" | "compliance" | "economics" | "tech" | "ux" | "future" | "security", priority: 1 | 2 | 3, relatedTerms?: string[], relatedServices?: string[], techStack?: string[], featured?: boolean }

update_glossary_term

Description: Update an existing glossary term with new information or improved definitions.

What you can do: Improve definitions, add related terms, update metadata, change categories.

Use cases: Improving glossary quality, keeping definitions current, enhancing relationships.

Arguments: { slug: string, ...updates }

delete_glossary_term

Description: Permanently remove a glossary term from the database.

What you can do: Remove outdated or duplicate terms, clean up glossary.

Use cases: Glossary maintenance, removing obsolete terms, consolidating duplicates.

Arguments: { slug: string }
🤖 AI Generation (5 tools) - NEW

AI-powered content analysis to automatically generate comparisons and glossary terms from existing content.

generate_comparisons_from_content

Description: AI analyzes blog post or article content and generates structured A vs B comparisons.

What you can do: Extract comparison opportunities from content, generate structured comparison data, auto-populate comparison database.

Use cases: Content repurposing, automated comparison extraction, scaling comparison library.

Arguments: { content: string (Markdown), maxComparisons?: number (default: 3), autoSave?: boolean }

suggest_comparisons_from_blog

Description: Suggest comparison topics based on existing blog content that would be valuable additions.

What you can do: Identify comparison opportunities from blog posts, get topic suggestions with reasoning.

Use cases: Content planning, comparison ideation, expanding comparison coverage.

Arguments: { blogSlug?: string, limit?: number (default: 5) }

generate_glossary_from_content

Description: AI extracts key AI/tech terms with definitions from content for glossary expansion.

What you can do: Identify terminology in content, generate definitions, suggest glossary additions.

Use cases: Glossary expansion, term extraction, educational content generation.

Arguments: { content: string (Markdown), maxTerms?: number (default: 10), autoSave?: boolean }

suggest_glossary_from_blog

Description: Suggest new glossary terms from blog content that aren't already in the database.

What you can do: Find terminology gaps, suggest new terms with proposed definitions.

Use cases: Glossary completeness, identifying missing terms, content-driven expansion.

Arguments: { blogSlug?: string, limit?: number (default: 10) }

enrich_glossary_term

Description: AI enriches an existing glossary term with related terms, tech stack associations, and use cases.

What you can do: Enhance term metadata, add relationships, improve discoverability.

Use cases: Glossary quality improvement, relationship building, metadata enhancement.

Arguments: { slug: string, autoSave?: boolean }
🎬 Video & Audio Pipeline (21 tools)

Full blog-to-video-shorts pipeline with AI-generated video, natural voice synthesis, lip sync, and environment-aware audio processing. Produces authentic Gen Z-style vertical videos for YouTube Shorts and TikTok.

blog_to_short

Description: Full blog-to-video-short pipeline. Generates script, scene prompts, captions (all template-based, 0 API calls), and TTS audio (ElevenLabs, 1 API call). Returns everything needed for video production.

What you can do: Convert any blog post into a ready-to-produce video short with script, 6 visual scene prompts, SRT captions, narration audio, and step-by-step post-production instructions.

Arguments: { title: string, content: string, language?: "en" | "de", style?: "educational" | "news" | "opinion" | "tutorial", environments?: ["cafe"], reference_image_url?: string }

generate_video_script

Description: Generate a viral-formula video script from blog content. Template-based, zero API calls.

What you can do: Create punchy 125-150 word scripts with hook/context/meat/kicker/CTA structure optimized for short-form video.

Arguments: { title: string, content: string, language?: "en" | "de", style?: "educational" | "news" | "opinion" | "tutorial" }

generate_scene_prompts

Description: Break a video script into scene-by-scene visual prompts optimized for Veo 3.1. Zero API calls — deterministic template-based. Now includes per-scene dialogue injection and sentiment-based facial expressions.

What you can do: Generate Veo-optimized prompts with character descriptions, environment details, camera angles, lighting, dialogue lines (character says: "..."), and sentiment-matched expressions (7 categories: skeptical, excited, serious, confident, curious, frustrated, playful) for each scene. Single environment per video for consistency.

Arguments: { script: string, sections?: array, character_description?: string, environments?: ["cafe"] }

generate_video_scene

Description: Generate a video scene using Google Veo 3.1. Supports character and environment reference images for consistency. Returns an operation name to poll.

What you can do: Generate 4-8 second AI video clips with consistent characters and environments. Supports 9:16 vertical (Shorts) and 16:9 horizontal formats.

Arguments: { prompt: string, reference_image_url?: string, environment?: "cafe" | "kitchen" | "street" | ..., aspect_ratio?: "9:16", duration?: 8 }

check_video_generation

Description: Poll the status of a Veo 3.1 video generation. Optionally download the result as base64.

Arguments: { operation_name: string, download?: boolean }

generate_speech

Description: Generate natural speech audio using ElevenLabs TTS with configurable voice, stability, and style parameters.

What you can do: Convert text to natural-sounding speech with low stability for expressive delivery. Supports English and German with multilingual models.

Arguments: { text: string, voice_id?: string, model_id?: string, stability?: number, similarity_boost?: number }

lipsync_video

Description: Sync lip movements in a video to match audio using Sync Labs (from Wav2Lip founders). Works on AI-generated video up to 4K.

Arguments: { video_url: string, audio_url: string, model?: "lipsync-2-pro" | "lipsync-2" }

check_lipsync

Description: Check the status of a Sync Labs lip sync job. Returns output URL when complete.

Arguments: { id: string }

list_voices

Description: List available ElevenLabs voices with metadata (name, language, description, preview URL).

list_avatars

Description: List available video avatars for avatar-based videos.

check_video_credits

Description: Check remaining video generation credits.

check_tts_usage

Description: Check text-to-speech usage and remaining quota.

check_video_status

Description: Check the status of a video generation job.

Arguments: { jobId: string }

create_avatar_video

Description: Create a video with an AI avatar presenter.

Arguments: { script: string, avatarId?: string }

extend_video_scene

Description: Extend an existing video scene with additional footage.

Arguments: { videoUrl: string, duration?: number }

generate_captions_srt

Description: Generate SRT caption file from script text.

Arguments: { script: string, language?: string }

get_lipsync_cost

Description: Estimate lip sync processing cost for a video.

Arguments: { videoDurationSeconds: number }

post_produce_video

Description: Run post-production pipeline on a video short.

Arguments: { videoUrl: string, captionsUrl?: string }
📄 Content Repurposing (3 tools)

Transform and repurpose content across formats — transcribe audio, summarize long content, adapt for different platforms.

transcribe_audio

Description: Transcribe audio files to text using OpenAI Whisper with optional word-level timestamps.

Arguments: { audio_url: string, language?: string }

summarize_content

Description: AI-powered content summarization with configurable length and format.

Arguments: { content: string, maxLength?: number, format?: "paragraph" | "bullets" | "tldr" }

repurpose_content

Description: Transform content for different platforms and formats — blog to thread, article to social post, etc.

Arguments: { content: string, targetFormat: string, platform?: string }

generate_hero_from_template

Description: Generate a hero image using a predefined template style for consistent brand visuals.

What you can do: Create brand-consistent hero images using template-based generation.

Use cases: Branded content visuals, template-driven image creation, consistent visual identity.

Arguments: { postId: string (required), template?: string }
🎨 General Image Generation (2 tools) - NEW

Generate any image with raw prompt passthrough or capture website screenshots. Multi-model fallback chain: Gemini Pro → Gemini Flash → OpenAI gpt-image-1.5 → gpt-image-1.

generate_image

Description: Generate any image from a text prompt. No blog-specific wrapping — raw prompt passthrough to AI image models with automatic fallback.

Arguments: { prompt: string, width?: number, height?: number }

take_screenshot

Description: Capture a high-quality retina screenshot of any website. Automatically dismisses cookie banners for clean captures. Uploads to cloud storage.

What you can do: Screenshot any public URL with automatic cookie banner dismissal, retina quality (2x), and cloud upload.

Use cases: Website previews, visual documentation, competitor analysis, content thumbnails.

Arguments: { url: string, width?: number, height?: number, fullPage?: boolean }
🖥️ Interactive Apps (3 tools)

Rich UI apps that generate data and resource URIs for human-in-the-loop validation.

ai_project_estimator

Description: Launch interactive project cost/timeline estimation UI.

Arguments: {}

blog_explorer

Description: Launch rich blog browsing interface with search and filtering.

Arguments: {}

submit_lead

Description: Submit a lead via the interactive app form.

Arguments: { name: string, email: string, message?: string }
👥 Outreach & CRM (12 tools)

Lead management, campaign orchestration, and outreach statistics.

create_lead

Description: Create a new lead/contact in the outreach CRM.

Arguments: { email: string (required), source: string (required), customerName: string (required), locale: string (required), companyName?: string, phone?: string, country?: string, budget?: string, timeline?: string, services?: string[], painPoints?: string[], industry?: string, notes?: string, isBusiness?: boolean, vatId?: string, projectType?: string, servicePackageInterest?: string }

update_lead

Description: Update lead information.

Arguments: { id: string (required), status?: string, priority?: string, score?: number, notes?: string, followUpDate?: string, nextAction?: string, estimatedValue?: number, companyName?: string, phone?: string, industry?: string }

list_leads

Description: List all leads with filters.

Arguments: { status?: string, source?: string, limit?: number }

search_leads

Description: Search leads by keyword in email, name, company or notes.

Arguments: { query: string (required), limit?: number }

update_lead_status

Description: Update lead pipeline status.

Arguments: { id: string (required), status: string (required) }

add_lead_note

Description: Add a note to a lead.

Arguments: { leadId: string (required), type: "note" | "email" | "call" | "meeting" | "file" (required), content: string (required) }

get_outreach_stats

Description: Get outreach performance and pipeline stats.

Arguments: {}

delete_lead

Description: Delete a lead.

Arguments: { id: string (required) }

create_campaign_outreach

Description: Create an outreach campaign to track multi-lead initiatives.

Arguments: { name: string (required), type: string (required), startDate: string (required), targetAudience?: string, goal?: string, budget?: number }

list_campaigns_outreach

Description: List all outreach campaigns with progress and lead counts.

Arguments: { status?: string, type?: string }

get_campaign_status_outreach

Description: Get outreach campaign status and metrics.

Arguments: { campaignId: string (required) }

run_pipeline_outreach

Description: Execute outreach campaign pipeline steps automatically.

Arguments: { campaignId: string (required) }
💼 CRM & Sales (23 tools)

Full-featured CRM capabilities including leads to clients conversion, client management, secure offer generation, updates, sending, and templating.

crm_list_leads

Description: Hauptsystem-Leads mit Status/Source/Score-Filter. NICHT verwechseln mit Outreach-Pipeline.

Arguments: { status?: string, source?: string, minScore?: number, limit?: number }

crm_get_lead

Description: Lead-Details + Aktivitäten (History) abrufen.

Arguments: { id: string (required) }

crm_get_lead_stats

Description: Pipeline-Übersicht für Leads.

Arguments: {}

crm_list_clients

Description: Kunden/Vendoren mit Status oder Suchbegriff auflisten.

Arguments: { status?: string, search?: string }

crm_get_client

Description: Details eines Clients abrufen.

Arguments: { id: string (required) }

crm_list_offers

Description: Angebote nach Client, Lead oder Status filtern.

Arguments: { clientId?: string, status?: string, leadId?: string }

crm_get_offer

Description: Details + Versionshistorie eines Angebots.

Arguments: { id: string (required) }

crm_get_offer_stats

Description: Angebots-Pipeline-Stats.

Arguments: {}

crm_list_offer_templates

Description: Titel- und Item-Templates für Angebote.

Arguments: {}

crm_export_offer_pdf

Description: Export a CRM offer as a PDF document.

Arguments: { id: string (required) }

crm_export_invoice_pdf

Description: Export a CRM invoice as a PDF document.

Arguments: { id: string (required) }

crm_list_invoices

Description: List all invoices with optional filters by client or status.

Arguments: { clientId?: string, status?: string, limit?: number }

crm_get_invoice

Description: Get a single invoice with full details.

Arguments: { id: string (required) }

crm_create_lead

Description: Neuen Lead anlegen. Nutze idempotencyKey zur Vermeidung von Duplikaten. (requires write flag)

Arguments: { idempotencyKey?: string, source: string (required), locale: string (required), email: string (required), customerName: string (required), companyName?: string, phone?: string, country?: string, budget?: string, timeline?: string, services?: string[], painPoints?: string[], priority?: string, industry?: string, notes?: string, status?: string, score?: number, isBusiness?: boolean, vatId?: string, followUpDate?: string, projectType?: string, servicePackageInterest?: string }

crm_update_lead

Description: Lead-Felder aktualisieren. (requires write flag)

Arguments: { id: string (required), status?: string, priority?: string, score?: number, notes?: string, followUpDate?: string, nextAction?: string, budget?: string, timeline?: string, services?: string[], estimatedValue?: number, companyName?: string, phone?: string, industry?: string }

crm_add_lead_note

Description: Fügt einem Lead eine Notiz, E-Mail, Anruf oder Meeting hinzu. (requires write flag)

Arguments: { leadId: string (required), type: "note" | "email" | "call" | "meeting" | "file" (required), content: string (required), createdByName?: string }

crm_convert_lead_to_client

Description: IRREVERSIBEL: Lead wird 'converted', neuer Client angelegt, leadHistory → customerHistory migriert. acceptedOfferId muss Status 'sent' oder 'viewed' haben. (requires write flag)

Arguments: { leadId: string (required), acceptedOfferId?: string }

crm_create_client

Description: Neuen Kunden oder Lieferanten anlegen. (requires write flag)

Arguments: { companyName?: string, firstName?: string, lastName?: string, email: string (required), phone?: string, website?: string, street?: string, city?: string, postalCode?: string, country?: string, countryCode?: string, taxId?: string, vatId?: string, taxRate?: number, isEuCountry?: boolean, reverseCharge?: boolean, language?: string, currency?: string, status?: string, type?: "customer" | "vendor" | "both", industry?: string, notes?: string, tags?: string[] }

crm_update_client

Description: Client/Vendor Felder aktualisieren. (requires write flag)

Arguments: { id: string (required), companyName?: string, firstName?: string, lastName?: string, email?: string, phone?: string, website?: string, status?: string, notes?: string, tags?: string[], taxRate?: number, vatId?: string, reverseCharge?: boolean, language?: string, currency?: string }

crm_create_offer

Description: Neues Angebot anlegen. Nutze idempotencyKey zur Vermeidung von Duplikaten. (requires write flag)

Arguments: { idempotencyKey?: string, clientId?: string, leadId?: string, title?: string, validFrom: number (required), validUntil: number (required), language?: string, currency?: string, introduction?: string, terms?: string, deliverables?: string[], timeline?: string, paymentTerms?: string, notes?: string, internalNotes?: string, items: { description: string, quantity: number, unitPrice: number, taxRate: number, discount?: number }[] (required) }

crm_update_offer

Description: Angebot bearbeiten. Nur möglich, wenn Status = 'draft'. (requires write flag)

Arguments: { id: string (required), title?: string, validUntil?: number, introduction?: string, terms?: string, deliverables?: string[], timeline?: string, paymentTerms?: string, notes?: string, internalNotes?: string, items?: { description: string, quantity: number, unitPrice: number, taxRate: number, discount?: number }[] }

crm_send_offer

Description: Setzt Angebot-Status von 'draft' → 'sent'. Nur Draft-Angebote. dryRun=true für Vorschau. HINWEIS: E-Mail-Versand (Resend) NICHT automatisch. (requires write flag)

Arguments: { offerId: string (required), recipientEmail: string (required), customMessage?: string, dryRun?: boolean }

crm_create_offer_version

Description: Erstellt eine neue Version eines Angebots (alte Version wird archiviert). (requires write flag)

Arguments: { offerId: string (required) }
🖋️ NDA Lifecycle Automation (31 tools)

End-to-end NDA workflows: wizard sessions, draft creation, party detail updates, PDF rendering, signing, export, revisions, lifecycle status changes, and deletion. Write tools require NDA_WRITE_ENABLED=true.

nda_start_wizard, nda_answer_question, nda_preview, nda_get_status

Description: Guided NDA creation flow for collecting template, language, purpose, counterparty, governing law, and clause variables.

nda_list, nda_get, nda_export

Description: Find existing NDAs, inspect one NDA with signers/edit requests/audit events, and export a full NDA as JSON or Markdown with optional signed PDF URLs.

Export arguments: { ndaId: string (required), format?: "json" | "markdown", includePdfUrls?: boolean }

nda_create_draft, nda_update_party_details, nda_prepare_user_signature, nda_send_for_signature

Description: Create drafts, update both party records before sending, store the internal signature, render the user-signed PDF, and send the public signing link.

nda_render_unsigned_pdf, nda_render_final_pdf, nda_retry_final_render, nda_app_read_pdf_chunk

Description: Render or retrieve unsigned, user-signed, and fully executed PDFs via temporary signed URLs. PDF bytes are not streamed through the model context.

nda_change_status, nda_create_revision_from_edit_request, nda_delete

Description: Apply the same lifecycle rules as the admin app for status changes, create revisions from edit requests, and permanently delete NDAs with related records. Destructive actions return a preview unless called with confirm:true.

📊 Accounting (5 tools)

Accounting integration with Qonto matching, ELSTER exports, and runway calculations.

get_accounting_balances

Description: Gibt aktuelle SKR03-Kontosalden: Bankguthaben (1200), USt-Forderung (1410), Vorsteuer (1576/1577), USt §13b (1787), GVK (0880), Netto-USt-Position.

Arguments: { year?: number }

list_open_expenses

Description: Alle Expenses ohne Journal Entry — noch nicht buchhalterisch erfasste Rechnungen.

Arguments: { limit?: number }

generate_elster_xml

Description: Generiert ELSTER-konformes UStVA-XML. Nur Generierung — kein automatisches Einreichen. Ausgabe in Mein ELSTER hochladen.

Arguments: { year: number (required), periodType: "monthly" | "quarterly" (required), periodNumber: number (required) }

get_financial_runway

Description: Qonto-Stand ÷ durchschnittlicher Burn Rate = verbleibende Monate.

Arguments: { monthsToAnalyze?: number }

export_datev

Description: Buchungen als DATEV-CSV für Zeitraum. Für Steuerberater-Übergabe.

Arguments: { startDate: number (required), endDate: number (required) }

📡 AEO — Answer Engine Optimization (3 tools) - NEW

Monitor brand visibility across AI assistants. Query ChatGPT, Gemini, and Perplexity in parallel to check if your brand gets recommended, track position over time, and get actionable reports.

3 Providers

ChatGPT, Gemini, Perplexity — queried in parallel

Trend Tracking

Mention rates, position trends, competitor frequency over time

Smart Reports

Aggregated analytics with AI-generated recommendations

audit_aeo_visibility

Send queries to ChatGPT, Gemini, and Perplexity. Analyze responses for brand mentions, position, competitors. Auto-saves to Convex.

track_aeo_history

View visibility trends over time — daily or weekly buckets, per-provider breakdown, trend direction (improving/stable/declining).

get_aeo_report

Comprehensive report: mention rates per provider, best/worst queries, top competitors, actionable recommendations.

StorageConvex aeoSnapshots table with 5 indexes
Brand DetectionCase-insensitive matching for "Context Studios", "contextstudios.ai", variations
Cost~$0.001/query (gpt-4o-mini + gemini-flash + perplexity-sonar)

🧠 Cortex — Cognitive Memory System (9 tools)

Human-like memory for AI agents. Multi-store architecture with decay, consolidation, contradiction detection, and spreading activation recall. Built on Convex — $0 cost within free tier.

Multi-Store

Sensory → Episodic → Semantic (auto-promoted)

Decay Engine

Memories lose strength over time. High-emotion ones decay slower.

Consolidation

Nightly job compresses sensory → episodic, detects patterns.

Spreading Activation

Recall follows association edges for context-rich results.

cortex_remember

Description: Store a memory with auto-embedding (OpenAI text-embedding-3-small, 1536 dims), auto-association with similar memories, contradiction detection, and dual-write to markdown fallback.

Arguments: { store: "sensory" | "episodic" | "semantic" | "procedural" | "prospective", category: "decision" | "lesson" | "person" | "rule" | "event" | "fact" | "goal" | "workflow", title: string, content: string, tags?: string[], source?: string, confidence?: number, valence?: number (-1 to 1), arousal?: number (0 to 1) }

cortex_recall

Description: Semantic search with spreading activation. Returns ranked results with associations. Composite scoring: strength×0.3 + recency×0.2 + access×0.1 + similarity×0.4.

Arguments: { query: string, store?: string, category?: string, limit?: number, sessionId?: string }

cortex_list_today

Description: List all memories created since a given timestamp (milliseconds). Use for temporal recall: "what happened today", "what ran since midnight". Returns results ordered by creation time, oldest first. Pass sinceMs=startOfDayMs for today, or any arbitrary timestamp for custom windows.

Arguments: { sinceMs: number (required), limit?: number }

cortex_what_do_i_know

Description: Knowledge audit on a topic. Returns all related memories plus the association graph for full context mapping.

Arguments: { topic: string }

cortex_why_did_we

Description: Decision tracing via multi-hop association traversal (2 hops through caused/related edges). Explains reasoning chains behind past decisions.

Arguments: { question: string }

cortex_forget

Description: Soft-delete/archive a memory. The memory is marked as archived but not permanently removed.

Arguments: { id: string }

cortex_stats

Description: System health dashboard: total memories, breakdown by store/category, average strength, most accessed, and most connected memories.

Arguments: none

cortex_checkpoint

Description: Save current working context for session recovery. Preserves active memories and task state.

Arguments: { sessionId: string, workingOn: string, focus?: string, activeMemoryIds: string[] }

cortex_wake

Description: Resume from a checkpoint with hydrated memories. Restores session context for continuity.

Arguments: { sessionId: string }

Architecture

ComponentDetails
BackendConvex (wary-platypus-754.convex.cloud)
TablescortexMemories (1536-dim vector index), cortexAssociations, cortexRetrievalLog, cortexCheckpoints
EmbeddingsOpenAI text-embedding-3-small (1536 dimensions)
Cron JobsDaily decay (4AM CET), 12h consolidation, daily cleanup (5AM CET)
FallbackDual-write to markdown — every memory also logged to local file
Cost$0 — fits within Convex free tier

Example Requests

Public API (No Auth)

curl -X POST https://mcp.contextstudios.ai/api/public/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "get_company_info",
      "arguments": {"sections": ["overview", "services", "contact"]}
    },
    "id": 1
  }'

Authenticated API

curl -X POST https://mcp.contextstudios.ai/api \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "X-API-Key: your-api-key" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "search_web",
      "arguments": {"query": "AI trends 2026"}
    },
    "id": 1
  }'

Integration Guide

Public API — No Authentication Required

The public endpoint provides 25 tools, 3 resources, and 3 prompts for company info, services, blog search, AI glossary, comparisons, technical guides, city-specific service pages, and guided agent workflows — no API key needed. Anyone (or any LLM) can use it directly:

POST https://mcp.contextstudios.ai/api/public/mcp
Headers: Content-Type: application/json, Accept: application/json, text/event-stream
Protocol: JSON-RPC 2.0 (MCP Streamable HTTP, spec 2025-11-25)

Authenticated API — Full 331 Tools

For content creation, publishing, image generation, and automation, you need an API key or an OAuth 2.1 token (PKCE-S256, RFC 7591 DCR). Contact hello@contextstudios.ai or book a consultation to get an API key. OAuth clients can self-register at POST /api/register.

POST https://mcp.contextstudios.ai/api
Headers: Content-Type: application/json, Accept: application/json, text/event-stream, X-API-Key: your-key
Protocol: JSON-RPC 2.0 (MCP Streamable HTTP)

Claude Desktop / Claude Code

Add this to your MCP configuration (claude_desktop_config.json or .mcp.json):

{
  "mcpServers": {
    "context-studios": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.contextstudios.ai/api",
        "--header",
        "X-API-Key:${MCP_API_KEY}"
      ]
    }
  }
}

Set MCP_API_KEY as an environment variable, or replace ${MCP_API_KEY} with your actual key.

Public Access (No Key)

To use the free public tools, resources, and prompts (company info, blog, glossary, comparisons, guides, location pages, CMS pages, pricing overview, and project-estimation prompt) without an API key:

{
  "mcpServers": {
    "context-studios-public": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.contextstudios.ai/api/public/mcp"
      ]
    }
  }
}

Other MCP Clients (Cursor, Windsurf, VS Code, ChatGPT)

Any MCP-compatible client can connect using the Streamable HTTP transport:

SettingValue
TransportStreamable HTTP
URL (authenticated)https://mcp.contextstudios.ai/api
URL (public)https://mcp.contextstudios.ai/api/public/mcp
AuthenticationX-API-Key header or OAuth 2.1 Bearer token (authenticated only)

Direct HTTP (curl / fetch)

For direct API calls without an MCP client, use JSON-RPC 2.0:

# Initialize session
curl -X POST https://mcp.contextstudios.ai/api/public/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}},"id":1}'

# List available tools
curl -X POST https://mcp.contextstudios.ai/api/public/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":2}'

# List public resources and prompts
curl -X POST https://mcp.contextstudios.ai/api/public/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"resources/list","id":3}'

curl -X POST https://mcp.contextstudios.ai/api/public/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"prompts/list","id":4}'

# Call a tool
curl -X POST https://mcp.contextstudios.ai/api/public/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_company_info","arguments":{"sections":["overview","contact"]}},"id":5}'

Required Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
AcceptYesapplication/json, text/event-stream
X-API-KeyAuth onlyYour API key for authenticated access
AuthorizationAuth onlyBearer <OAuth token> for OAuth 2.1 clients
MCP-Protocol-VersionOptionalUse 2025-11-25 for stable clients. Draft 2026-07-28 is accepted with matching Mcp-Method.

Rate Limits

EndpointLimitWindow
Public (/api/public/mcp)60 requestsper minute
Authenticated (/api)300 OAuth / 600 trusted API key requestsper minute

AI Glossary (80+ Terms)

Context Studios maintains a comprehensive AI glossary covering 80+ terms across 10 categories. Key terms relevant to this MCP server:

MCP

Model Context Protocol for AI tool integration

Agentic AI

AI systems that take autonomous actions

RAG

Retrieval-Augmented Generation for knowledge

Tool Use

Function calling for LLM capabilities

Context Engineering

Designing optimal contexts for LLMs

Structured Outputs

Guaranteed valid JSON from LLMs

FastMCP

High-level framework for MCP servers

Streamable HTTP

Standard transport for remote MCP

Glossary Categories

CategoryExamples
AgenticAgentic AI, MCP, Claude Code, Multi-Agent Orchestration, LangGraph
InfrastructureRAG, Vector Database, Embeddings, Prompt Caching, Tool Use
SafetyConstitutional AI, Hallucination Monitoring, Human-in-the-Loop, AI Firewall
EngineeringContext Engineering, Structured Outputs, Test-Time Scaling, RLHF, DPO
ComplianceEU AI Act, GDPR-Compliant RAG, Agent Governance, AI Sovereignty
EconomicsToken Economics, SLM, LLM Routing, ROI of AI
TechReasoning Mode, Chain-of-Thought, Mixture of Experts
UXGenerative UI, GEO, llms.txt, Intent-Based Navigation
FutureWorld Models, Physical AI, Spatial Intelligence
SecurityAI Sovereignty, Graph RAG, ZDR

Explore all terms: contextstudios.ai/glossary

AURA Framework (AI Agent Methodology)

Context Studios' proprietary framework for production-ready AI agents:

ComponentDescription
Agent StrategyDefine architecture, capabilities, and guardrails
Understanding & KnowledgeRAG with vector databases for context
Reasoning & IntegrationAPIs, databases, and tool calling
Automation WorkflowsAutonomous execution with oversight

AI Agent Benchmarks (Verified)

73%
Reduction in manual processing
4.2x
Faster research workflows
€180k
Avg annual enterprise savings
89%
Accuracy in autonomous decisions

Learn more: contextstudios.ai/ai-agents

Services & Budget Ranges

Use get_pricing tool with these budget ranges:

Budget RangeServicesPrice Range
under_5kSaaS Setup, Automation Setup€2,000 - €6,000
5k_20kTool Integration, AI Workshop, MVP Sprint (Founding)€5,000 - €18,000
20k_50kMobile Apps, MVP Sprint (Regular)€25,000 - €80,000
50k_plusFull-Scale Development, Enterprise API€30,000 - €150,000

11 Services Overview

ServicePrice RangeTimeline
SaaS Setup€2,000 - €3,5001-2 weeks
Automation Setup€3,500 - €6,0001-2 weeks
Tool Integration€5,000 - €8,0002-4 weeks
AI Discovery Workshop€1,500 - €4,5001-2 days
MVP Sprint€18,000 - €32,000+4 weeks
Mobile Apps€25,000 - €80,0008-18 weeks
AI AssessmentFree - €2,5001-2 weeks
Full-Scale Development€50,000 - €150,0008-16 weeks
Enterprise API€30,000 - €80,0006-12 weeks
AI Agents (AURA)Custom4-8 weeks
AI Consulting€150/hourOngoing

About Context Studios

Context Studios is a Berlin-based AI-native software development agency. MVPs in 4 weeks, 5-10x faster than traditional development methods.

CompanyContext Studios UG (haftungsbeschränkt)
FoundedOctober 2025
LocationBerlin, Germany
Websitecontextstudios.ai
Full llms.txtcontextstudios.ai/llms.txt
AI Instructionscontextstudios.ai/ai.txt
Book ConsultationFree 30-min call
Emailhello@contextstudios.ai
Phone+49-30-20096840
X/Twitter@_contextstudios
LinkedInlinkedin.com/company/contextstudios-ai
🌙 Nightshift Orchestrator (5 tools)

Autonomous multi-agent coding orchestration. Coordinate Gemini CLI (via A2A) and Claude Code (via MCP Channels) for overnight development tasks. Hub runs locally on Mac mini (localhost:9090).

nightshift_start

Description: Start a nightshift agent with a NIGHTSHIFT spec file.

Arguments: { agent: "claude" | "gemini" | "both" | "auto", spec_file: string, context?: string, priority?: "normal" | "urgent" }

Note: Requires Hub running locally (localhost:9090). Use via mcporter on Mac mini.

nightshift_send

Description: Send a message or instruction to a running nightshift agent.

Arguments: { agent: "claude" | "gemini" | "all", message: string (max 500), priority?: "normal" | "urgent" }

nightshift_read

Description: Read pending messages from nightshift agents (drains the queue).

Arguments: { agent?: "claude" | "gemini" | "nemoclaw" | "all" }

nightshift_status

Description: Get real-time status of all nightshift agents and Hub health.

Arguments: {}

nightshift_stop

Description: Stop a running nightshift agent.

Arguments: { agent: "claude" | "gemini" | "all", reason: string }

🤝 Reddit — Community Engagement (6 tools)

Track Reddit karma, log comments, analyze patterns, and quality-check drafts before posting.

reddit_log_comment

Log a Reddit comment with subreddit, karma, and context for tracking.

reddit_update_scores

Update karma scores for previously logged Reddit comments.

reddit_get_rules

Fetch subreddit rules to ensure posts/comments comply before submitting.

reddit_analyze_draft

Quality-check a draft Reddit comment or post against subreddit rules and engagement patterns.

reddit_daily_snapshot

Capture a daily snapshot of Reddit engagement metrics across tracked subreddits.

reddit_pattern_analysis

Analyze engagement patterns to identify optimal posting times, high-karma topics, and community trends.