Content Plan Builder
An MCP server that uses AI to generate structured Asana project plans from diverse sources like text, PDFs, and meeting transcripts. It enables users to preview, generate, and directly sync detailed task lists, subtasks, and dependencies into Asana.
README
Content Plan Builder
An MCP (Model Context Protocol) server that generates comprehensive Asana project plans from arbitrary content — text, PDFs, DOCX files, meeting transcripts, or any combination.
Features
- Multi-format Input: Accepts text, PDF, DOCX, TXT, MD, HTML, CSV, and JSON files
- AI-Powered Generation: Uses Claude to create detailed project plans with:
- 5 top-level tasks with 5-10 subtasks each
- Realistic time estimates
- Role-based assignments
- Task dependencies
- SMART goals
- Key data points and metrics
- Asana Integration: Optionally create projects directly in Asana
- Flexible Output: Detailed structured format or compact array format
Installation
# Clone the repository
git clone https://github.com/yourusername/content-plan-builder.git
cd content-plan-builder
# Install dependencies
npm install
# Build
npm run build
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY |
Yes | Anthropic API key for Claude |
MCP Registration
Add to your ~/.mcp.json:
{
"mcpServers": {
"content-plan-builder": {
"command": "node",
"args": ["/path/to/content-plan-builder/dist/index.js"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key"
}
}
}
}
For Claude Desktop, add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"content-plan-builder": {
"command": "node",
"args": ["/path/to/content-plan-builder/dist/index.js"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key"
}
}
}
}
Usage
Tool: plan_from_content
Operations
| Operation | Description |
|---|---|
generate |
Create a project plan from inputs |
preview |
Preview plan without saving |
create |
Generate plan and create in Asana |
Parameters
| Parameter | Type | Description |
|---|---|---|
operation |
string | generate, preview, or create |
inputs |
array | Array of input objects |
knowledgeBaseContext |
string | Additional context to include |
projectName |
string | Name for the generated project |
creativity |
string | conservative, balanced, or expansive |
outputFormat |
string | detailed, compact, or both |
asanaAccessToken |
string | Asana PAT (for create operation) |
asanaTeamGid |
string | Team GID for new project |
targetProjectGid |
string | Add to existing project |
Input Types
| Type | Description |
|---|---|
text |
Raw text content |
file |
File path to PDF, DOCX, TXT, MD, HTML, CSV, or JSON |
transcript |
Meeting transcript text |
meeting_notes |
Meeting notes text |
Examples
Generate plan from text
{
"operation": "generate",
"inputs": [
{
"type": "text",
"content": "We need to build a new customer portal with user authentication, a dashboard showing order history, and the ability to track shipments..."
}
],
"projectName": "Customer Portal Development"
}
Generate from file
{
"operation": "generate",
"inputs": [
{
"type": "file",
"content": "/path/to/requirements.pdf"
}
],
"creativity": "expansive"
}
Combine multiple inputs
{
"operation": "generate",
"inputs": [
{
"type": "transcript",
"content": "Meeting transcript from kickoff call..."
},
{
"type": "file",
"content": "/path/to/scope-document.docx"
}
],
"knowledgeBaseContext": "This project is part of the Q2 digital transformation initiative...",
"projectName": "Digital Transformation - Phase 1"
}
Create in Asana
{
"operation": "create",
"inputs": [
{
"type": "transcript",
"content": "Sprint planning meeting transcript..."
}
],
"projectName": "Sprint 14 Tasks",
"asanaAccessToken": "your-asana-pat",
"asanaTeamGid": "1234567890"
}
Output Formats
Detailed Format
Full structured plan with all metadata:
{
"projectGoal": "Build a customer-facing portal that enables...",
"topLevelTasks": [
{
"name": "User Authentication System",
"description": "Implement secure authentication...",
"assignedTo": "Senior Developer",
"estimate": "2 weeks",
"blockedBy": "N/A",
"subtasks": [...]
}
],
"keyDataPoints": ["500 concurrent users expected", ...],
"keywordsAndPhrases": ["customer portal", "authentication", ...],
"questionsAndExercises": ["What is the expected user growth rate?", ...],
"smartGoals": ["Reduce customer support tickets by 30% within 3 months", ...],
"additionalMaterials": ["UX design guidelines", ...]
}
Compact Format
Array of all subtasks for easy import:
[
{
"index": 1,
"Parent-task": "User Authentication System",
"Sub-Task": "Design authentication flow",
"Task Description": "Create detailed flow diagrams...",
"Assignee": "UX Designer",
"Estimated Time": "3 days",
"Dependencies": "N/A"
}
]
Creativity Levels
| Level | Description |
|---|---|
conservative |
Stick closely to what is explicitly mentioned in the content |
balanced |
Include tasks that are mentioned or strongly implied (default) |
expansive |
Infer additional tasks for testing, documentation, deployment, etc. |
Development
# Run in development mode
npm run dev
# Build
npm run build
# Start production server
npm start
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.