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