MCP Content Curation Server
Integrates with OpenAI's GPT-4 API to provide AI-powered content curation capabilities including smart categorization, intelligent tagging, and content optimization for educational materials
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Content Curation Serversuggest tags for my new course on machine learning with Python"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🎓 MCP Content Curation Server
A Model Context Protocol (MCP) server for intelligent course content curation powered by GPT-4. This server provides AI-driven tools to categorize, tag, and improve educational content.
✨ Features
🗂️ Smart Categorization: AI-powered category suggestions for course content
🏷️ Intelligent Tagging: Context-aware tag recommendations using GPT-4
✨ Content Optimization: Improve titles and descriptions following best practices
🔌 MCP Integration: Seamless integration with Claude Desktop and other MCP clients
Related MCP server: OpenEdu MCP Server
🚀 Quick Start
Prerequisites
Node.js 18+
OpenAI API key
Installation
Clone the repository
git clone https://github.com/yourusername/mcp-content-curation-server.git cd mcp-content-curation-serverInstall dependencies
npm installConfigure environment
cp .env.example .env # Edit .env and add your OpenAI API keyRun the server
# Development mode npm run dev # Production mode npm run build npm start
đź”§ OpenAI Setup
Get your API key from OpenAI Platform
Add it to your
.envfile:OPENAI_API_KEY=sk-your-actual-api-key-here
🖥️ Claude Desktop Integration
Update your claude_desktop_config.json:
Development Mode:
{
"mcpServers": {
"content-curation": {
"command": "npx",
"args": ["tsx", "/path/to/your/project/src/server.ts"],
"cwd": "/path/to/your/project",
"env": {
"NODE_ENV": "development"
}
}
}
}Production Mode:
{
"mcpServers": {
"content-curation": {
"command": "node",
"args": ["/path/to/your/project/dist/server.js"],
"cwd": "/path/to/your/project",
"env": {
"NODE_ENV": "production"
}
}
}
}🛠️ Available Tools
1. suggest_category
Suggests the most appropriate category for course content.
Input:
{
"title": "Python for Data Science",
"description": "Learn data analysis with pandas and matplotlib"
}2. suggest_tags
Recommends relevant tags based on course content.
Input:
{
"title": "Digital Marketing Fundamentals",
"description": "Master SEO, Google Ads, and social media marketing"
}3. improve_content
Optimizes titles and descriptions following educational best practices.
Input:
{
"title": "JavaScript Basics",
"description": "Learn programming fundamentals"
}📊 Data Structure
The server includes:
5 main categories: Technology, Business, Design, Marketing, Analytics
18 contextual tags: Organized by subject area
10 sample courses: For similarity analysis and training
đź’ˇ Usage Examples
Categorization
Suggest a category for: "Advanced React Hooks" - "Custom hooks and performance optimization in React"Tagging
What tags would you recommend for: "Machine Learning with Python"?Content Improvement
Improve this content:
Title: "Excel Basics"
Description: "Learn spreadsheets"🛠️ Development
Available Scripts
npm run dev- Start development servernpm run build- Compile TypeScriptnpm start- Run production servernpm run debug- Run diagnostics
Project Structure
src/
├── server.ts # Main MCP server
├── services/
│ ├── ai.service.ts # OpenAI GPT-4 integration
│ └── curation.service.ts # Curation logic
├── data/
│ └── mock-data.ts # Categories, tags, and sample data
└── types.ts # TypeScript definitionsAvailable Tools
3 toolsimprove_contentC
Melhora tĂtulo e descrição de um curso seguindo boas práticas
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | TĂtulo atual do curso | |
| description | Yes | Descrição atual do curso |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool improves content but doesn't explain how (e.g., does it rewrite, suggest alternatives, or validate?), what the output looks like, or any constraints like rate limits or permissions needed. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Portuguese that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a content improvement tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'improves' entails, the format or nature of the output, or how it interacts with sibling tools. This leaves the agent with insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters ('title' and 'description'). The description adds no additional meaning beyond what the schema provides, as it doesn't elaborate on parameter usage or constraints. Given the high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Melhora' - improves) and the resource ('tĂtulo e descrição de um curso' - title and description of a course), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'suggest_category' or 'suggest_tags' which might also relate to course content optimization, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'suggest_category' or 'suggest_tags'. It mentions 'seguindo boas práticas' (following good practices), which implies a context of quality improvement, but offers no explicit when/when-not instructions or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_categoryC
Sugere categoria mais apropriada para um curso usando IA
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | TĂtulo do curso | |
| description | Yes | Descrição do curso |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool uses AI ('usando IA'), which hints at automated processing, but doesn't describe key behaviors: it doesn't specify if this is a read-only operation, what the output format might be (e.g., a single category or multiple suggestions), potential limitations like accuracy or rate limits, or any side effects. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Portuguese that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action ('Sugere categoria'), making it easy to parse. However, it could be slightly more structured by including key details like output or usage context, but as is, it earns its place concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the context: no annotations, no output schema, and a tool that likely involves AI processing with two parameters, the description is incomplete. It doesn't explain what the tool returns (e.g., a category name or list), any behavioral traits like reliability or speed, or how it integrates with sibling tools. For a tool with no structured data beyond the input schema, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for both parameters ('title' and 'description' of the course). The description adds no additional meaning beyond what the schema provides—it doesn't explain how these inputs are used by the AI, any constraints on their content, or examples. With high schema coverage, the baseline score is 3, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Sugere categoria mais apropriada para um curso usando IA' (Suggests the most appropriate category for a course using AI). It specifies the verb 'sugere' (suggests), the resource 'categoria' (category), and the context 'para um curso' (for a course). However, it doesn't explicitly differentiate from sibling tools like 'improve_content' or 'suggest_tags', which likely serve different purposes (e.g., content improvement vs. tag suggestion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools ('improve_content', 'suggest_tags') or specify contexts where this tool is preferred, such as for initial course categorization versus other categorization methods. There's also no information on prerequisites or exclusions, leaving usage entirely implied from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_tagsB
Sugere tags relevantes para um curso usando IA
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | TĂtulo do curso | |
| description | Yes | Descrição do curso |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions AI usage but does not describe how the tool behaves, such as whether it generates tags based on input, requires specific permissions, has rate limits, or returns structured data. The description lacks details on operational traits beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Portuguese: 'Sugere tags relevantes para um curso usando IA'. It is front-loaded with the core purpose, has no redundant information, and every word contributes to understanding the tool's function. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (AI-based suggestion with 2 parameters) and lack of annotations and output schema, the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or error handling. For a tool with no structured output and no annotations, more context would be beneficial, but it meets the basic threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for 'title' and 'description' parameters. The description does not add any semantic details beyond what the schema provides, such as format examples or usage tips. Since schema coverage is high, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Sugere tags relevantes para um curso usando IA' (Suggests relevant tags for a course using AI). It specifies the verb 'sugere' (suggests), the resource 'tags' (tags), and the context 'para um curso' (for a course). However, it does not explicitly differentiate from sibling tools like 'improve_content' or 'suggest_category', which may also involve AI suggestions for course-related content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'improve_content' or 'suggest_category', nor does it specify prerequisites, exclusions, or contextual cues for selection. Usage is implied based on the need for tag suggestions, but explicit guidelines are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
improve_content - First observed
suggest_category - First observed
suggest_tags
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: improve_content focuses on enhancing title and description, suggest_category recommends a category, and suggest_tags suggests tags. There is no overlap in functionality, making it easy for an agent to select the correct tool without confusion.
All tool names follow a consistent verb_noun pattern (improve_content, suggest_category, suggest_tags) with the same verb style ('improve' and 'suggest'). This predictability aids in understanding and usage without deviation.
With only 3 tools, the server feels thin for a content curation domain, as it lacks operations like creating, updating, or deleting content. While the tools are focused, the scope is limited, potentially requiring workarounds for full curation workflows.
The toolset is severely incomplete for content curation, missing core CRUD operations (e.g., create_content, update_content, delete_content) and other essential functions like listing or searching content. This will likely cause agent failures in handling comprehensive curation tasks.
Maintenance
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
MCP server for building and testing AI agents with multi-model experimentation and insights.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server that implements the Model Context Protocol, providing a standardized way to connect AI models to different data sources and tools.3 npm11MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive Model Context Protocol server providing educational resources and curriculum planning support with intelligent filtering across multiple educational APIs.11MIT
- -licenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that helps users create, validate, and optimize AI prompts using the RISEN framework (Role, Instructions, Steps, Expectations, Narrowing).-
- FlicenseNot gradedqualityNot gradedmaintenanceA comprehensive educational server demonstrating Model Context Protocol capabilities for tools, resources, and prompts, allowing AI assistants to connect to external data and functionality.8 npm-