@houtini/contentmarketingideas
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CMI_API_KEY | Yes | Your API key from Dashboard → Account → API & MCP Server (starts with cr_) | |
| CMI_API_URL | No | API base URL — override only for self-hosted or staging | https://api.contentmarketingideas.co |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sourcesB | List all content sources. Optionally filter by site. |
| get_sourceA | Get a single source by ID, including item count |
| add_sourceA | Add a content source (RSS feed, YouTube channel, Reddit subreddit, podcast, or news keyword) |
| update_sourceA | Update a source (rename or set keyword filters) |
| delete_sourceA | Remove a content source and its content items |
| detect_sourceB | Auto-detect source type and feed URL from a URL |
| list_briefsB | List editorial briefs. Filter by site, status, signal type, or search text. |
| get_briefA | Get full brief detail including synthesis, enrichment, signals, and keywords |
| brief_feedbackB | Submit feedback on a brief (thumbs_up, thumbs_down, made_this, already_covered) |
| delete_briefA | Permanently delete a brief and its feedback |
| generate_draftA | Generate a voice-matched draft article for a brief (uses site profile voice guide) |
| get_draftA | Get the generated draft text for a brief |
| list_articlesA | List articles for a site, optionally filtered by status |
| get_articleA | Get full article detail including markdown, outline, research, and provenance |
| create_articleB | Create a new article. Can be from a brief (source_type=brief, source_id=brief_id) or custom. |
| update_articleC | Update an article (title, markdown, research, notes, keyword) |
| delete_articleA | Permanently delete an article |
| generate_articleB | Queue article for AI generation (research, outline, draft, voice check). Returns immediately. |
| regenerate_articleA | Regenerate a failed or completed article |
| publish_articleA | Publish a generated article to WordPress (requires WP credentials on the site) |
| get_publish_statusB | Check WordPress publish status for an article |
| get_article_provenanceA | Get the full provenance chain: per-section facts, sources, entity QIDs, Schema.org JSON-LD |
| get_wordpress_statusB | Check WordPress connection status for a site |
| save_wordpress_credentialsB | Connect WordPress to a site (validates connection first) |
| delete_wordpress_credentialsB | Disconnect WordPress from a site |
| get_growth_planA | Get the latest cached growth plan for a site |
| generate_growth_planA | Generate a new growth plan for a site (syncs GSC, runs analysis) |
| gsc_syncC | Sync Google Search Console data for a site |
| gsc_summaryA | Get GSC performance summary (28-day clicks, impressions, CTR, position) |
| gsc_queriesC | Get top GSC queries with performance metrics |
| gsc_opportunitiesA | Get GSC opportunity queries (position 4-20, high impressions) |
| gsc_daily_summaryB | Get daily GSC performance metrics for sparklines and trends |
| gsc_declining_queriesB | Get GSC queries losing clicks/impressions over time |
| gsc_growing_queriesB | Get GSC queries gaining clicks/impressions over time |
| gsc_declining_pagesB | Get pages losing search performance over time |
| gsc_growing_pagesC | Get pages gaining search performance over time |
| list_corpus_documentsB | List RAG corpus documents, optionally filtered by hostname |
| delete_corpus_documentB | Delete a single corpus document by ID |
| search_ragA | Search the RAG corpus using semantic + keyword hybrid search |
| rag_statsA | Get RAG corpus statistics: document counts, hostnames, coverage |
| populate_corpusA | Add URLs to the RAG corpus (scrapes and indexes them, max 20) |
| populate_siteB | Populate corpus from a website sitemap |
| populate_youtubeA | Populate corpus from a YouTube channel (transcripts) |
| get_coverageB | Get brief-vs-corpus coverage report for a site |
| get_coverage_exploreB | Get Topic Explorer data: entity clusters, coverage status, traffic, action cards |
| get_accountA | Get your account details: plan, usage, limits, sites |
| list_sitesA | List all your sites with source and brief counts |
| create_siteB | Create a new site (subject to plan limits) |
| update_siteB | Update a site name or URL |
| delete_siteA | Delete a site (sources reassigned, briefs deleted). Cannot delete last site. |
| update_site_scheduleA | Update delivery schedule. Free plan: weekly only. Paid: daily/weekday/weekly_monday/weekly_friday. |
| list_account_emailsB | List delivery email recipients |
| add_account_emailB | Add a delivery email recipient |
| delete_account_emailA | Remove a delivery email recipient (cannot remove primary) |
| get_profileA | Get a site profile by hostname (voice, topics, audience, style guide) |
| trigger_profileA | Generate/refresh a site profile. Scrapes sitemap, analyses content. Use force=true to bypass cache. |
| trigger_ingestionA | Trigger content ingestion (fetches new items from RSS/YouTube/Reddit/podcast/news sources) |
| trigger_synthesisB | Trigger brief synthesis (generates editorial briefs from scraped content) |
| list_deliveriesC | List email delivery history |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/houtini-ai/contentmarketingideas-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server