MCP + CrewAI Agentic Integration
Orchestrates autonomous multi-agent workflows by integrating MCP tools for market research and data analysis.
Provides a news intelligence tool that retrieves global news data using the Google Search API via Serper.
Click on "Install 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 + CrewAI Agentic IntegrationResearch latest AI trends and save a summary to my local notes"
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 + CrewAI Agentic Integration ๐
A powerful demonstration of Model Context Protocol (MCP) integrated with CrewAI orchestrations, featuring full observability through AgentOps and high-speed inference via Groq.
๐ Overview
This project bridges the gap between context-aware tools and autonomous agents. It provides a custom MCP server for real-time external data (Weather, News, Notes) while leveraging CrewAI to orchestrate multi-agent workflows.
๐๏ธ Architecture
MCP Layer: A
FastMCPserver exposing tools for real-time data retrieval.
Agentic Layer:
CrewAIagents specialized in Market Analysis and Research.
Inference Layer: Ultra-fast LLMs (Llama 3.1) hosted on
Groq.Observability Layer:
AgentOpsfor tracing, cost management, and debugging.
Related MCP server: MCP Tool Server
โจ Key Features
๐ ๏ธ Custom MCP Server Tools
โ๏ธ Weather Engine: Real-time meteorology data via WeatherAPI.
๐ฐ News Intelligence: Global news retrieval via Serper (Google Search API).
๐ Contextual Notes: Locally persistent note management for long-term memory.
๏ฟฝ Auto-Summary: Intelligent summarization of collected context.
๐ฅ Intelligence Crew
๐ Market Researcher: Scours data to identify emerging trends.
๐ Data Analyst: Synthesizes research into actionable market insights.
๐ Sequential Workflow: Fully orchestrated execution path for reliable results.
๐ ๏ธ Tech Stack
Framework: CrewAI
Server: FastMCP
LLM Engine: Groq (Llama 3.1 8B/70B)
Tracing: AgentOps
Package Manager: uv
๐ Getting Started
1. Prerequisites
Ensure you have the following installed:
uv (Recommended) or Python 3.13+
A valid Groq API Key
A valid AgentOps API Key
A Serper API Key (for News)
2. Installation
Clone the repository and sync dependencies:
git clone https://github.com/vad-007/MCP_Integration_crewai.git
cd MCP_Integration_crewai
uv sync3. Configuration
Create a .env file in the root directory:
AGENTOPS_API_KEY=your_agentops_key
GROQ_API_KEY=your_groq_key
SERPER_API_KEY=your_serper_key
WEATHER_API_KEY=your_weather_key4. Running the Project
๐ Start the MCP Server
mcp dev main.py๐ข Run the CrewAI Integration
python crewai_agentops_integration.py๐ Run Diagnostics
python test_agentops.py๐ Observability with AgentOps
This project is fully instrumented. Every run generates a unique replay URL allowed you to:
Watch Agent Self-Correction: See exactly how agents reason through tasks.
Trace LLM Calls: Monitor every prompt and completion.
Analyze Latency: Visualize the execution timeline of your crew.
Check your dashboard at: app.agentops.ai
๐ Project Structure
โโโ main.py # FastMCP Server implementation
โโโ crewai_agentops_integration.py # Main CrewAI orchestration
โโโ test_agentops.py # Connectivity & Diagnostic tool
โโโ .env # Environment variables (private)
โโโ pyproject.toml # Project configuration
โโโ uv.lock # Dependency lockfile
โโโ docs/ # Troubleshooting & Optimization guides๐ค Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Fork the Project
Create your Feature Branch (
git checkout -b feature/AmazingFeature)Commit your Changes (
git commit -m 'Add some AmazingFeature')Push to the Branch (
git push origin feature/AmazingFeature)Open a Pull Request
๐ก๏ธ License
Distributed under the MIT License. See LICENSE for more information.
Developed with โค๏ธ for the AI Community.
Available Tools
4 toolsadd_noteB
Append a new note to the note file.
Args: message (str): The note content to be added.
Returns: str: Confirmation message indicating the note was saved.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 mentions 'Append' (implying mutation) and a confirmation return, but lacks details on permissions, file location, error handling, or whether notes are editable/deletable. This is insufficient for a mutation tool without annotations.
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 highly concise and well-structured: a clear purpose statement followed by separate Args and Returns sections. Every sentence adds value without redundancy, making it easy for an agent to parse quickly.
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 low complexity (one parameter) and the presence of an output schema (which handles return values), the description is adequate but not complete. It lacks behavioral context (e.g., file system interactions) and usage guidelines, which are important for a mutation tool with no annotations.
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 description adds meaningful context for the single parameter 'message' by explaining it as 'The note content to be added,' which clarifies its purpose beyond the schema's basic type definition. Since schema description coverage is 0%, this compensates well, though it doesn't detail format constraints like length or encoding.
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 ('Append a new note') and the target resource ('to the note file'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'read_notes' beyond the verb difference, so it doesn't fully achieve sibling distinction.
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 'read_notes' or other note-related operations. It states what the tool does but offers no context about prerequisites, appropriate scenarios, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_weatherB
Fetch current weather for a city
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions fetching current weather but doesn't specify data sources, accuracy, rate limits, error conditions, or response format. This leaves significant gaps for an agent to understand how the tool behaves beyond the basic action.
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, direct sentence with no wasted words, making it easy to parse and front-loaded with the core functionality. It efficiently communicates the essential purpose without unnecessary elaboration.
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 low complexity (one parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, it lacks details on behavioral aspects like reliability or constraints, which are important even for simple tools, especially with no annotations to fill gaps.
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?
Schema description coverage is 0%, but the description adds minimal parameter context by implying the 'city' parameter is used to specify location. However, it doesn't clarify format (e.g., city name, coordinates), handling of ambiguous names, or required specificity. With one parameter and low schema coverage, this provides some but incomplete compensation.
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 ('fetch') and resource ('current weather for a city'), making the purpose immediately understandable. It doesn't distinguish from siblings (which are unrelated tools for notes and news), but that's not needed here since they serve completely different domains.
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, prerequisites, or limitations. It simply states what it does without context about timing, constraints, or comparison to other weather-related tools (though none exist among siblings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_notesB
Read and return all notes from the note file.
Returns: str: All notes as a single string separated by line breaks. If no notes exist, a default message is returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 adds some context: it describes the return behavior (all notes as a single string with line breaks, or a default message if none exist). However, it doesn't cover important aspects like error handling (e.g., if the file is missing), performance implications, or any side effects, leaving gaps in transparency.
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 concise and well-structured, with two clear sentences: one stating the purpose and another detailing the return behavior. It avoids unnecessary words and is front-loaded with the main action. However, it could be slightly improved by integrating the return details more seamlessly, but overall it's efficient.
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 low complexity (0 parameters, no annotations, but has an output schema), the description is somewhat complete but has gaps. It explains the return values adequately, but lacks context on when to use it, error scenarios, or how it interacts with siblings like 'add_note'. The output schema helps, but the description should provide more operational guidance 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 tool has 0 parameters, and the schema description coverage is 100% (as there are no parameters to describe). The description doesn't need to add parameter semantics, so it naturally meets the baseline of 4 for this dimension, as it doesn't introduce confusion or redundancy regarding inputs.
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: 'Read and return all notes from the note file.' It specifies the verb ('read and return') and resource ('all notes from the note file'), making the action unambiguous. However, it doesn't explicitly differentiate from its sibling 'add_note' beyond the obvious read vs. write distinction, which is why it doesn't reach a score of 5.
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 any prerequisites, such as whether notes must exist or if the file needs to be accessible, nor does it compare to other tools like 'add_note' for related operations. This lack of contextual usage information limits its effectiveness for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_newsB
Fetch search results from Google News via Serper
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 action ('Fetch search results') but does not describe any behavioral traits such as rate limits, authentication needs, error handling, or what the output looks like. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
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 that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand at a glance, which is ideal for conciseness.
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 complexity (simple search with one parameter) and the presence of an output schema, the description is somewhat complete for basic understanding. However, with no annotations and low schema coverage, it lacks details on behavioral aspects and parameter semantics, making it adequate but with clear gaps in providing a full context for effective use.
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 description does not add any meaning beyond what the input schema provides. The schema has 0% description coverage, but the description does not explain the 'query' parameter's purpose, format, or constraints. Since there is only one parameter and the schema coverage is low, the description fails to compensate, resulting in a baseline score due to the minimal parameter count.
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 ('Fetch search results') and the resource ('from Google News via Serper'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'fetch_weather' or 'read_notes', though the domain difference is implied by the name and description.
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 or in what context it should be applied. It lacks any mention of prerequisites, limitations, or comparisons to sibling tools, leaving usage entirely implicit based on the tool name and general purpose.
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. Dates show when Glama detected each change.
4 tool updates
v0.1.0- First observed
add_note - First observed
fetch_weather - First observed
read_notes - First observed
search_news
TDQS
Each tool has a clearly distinct purpose: add_note and read_notes handle note management, fetch_weather retrieves weather data, and search_news fetches news results. There is no overlap in functionality, making tool selection straightforward for an agent.
The tool names follow a consistent verb_noun pattern (add_note, fetch_weather, read_notes, search_news), which is predictable and readable. The minor deviation is that 'fetch_weather' and 'search_news' use different verbs ('fetch' vs. 'search'), but the overall pattern remains clear.
With only 4 tools, the set feels thin for a server named 'MCP + CrewAI Agentic Integration', which suggests broader agentic capabilities. While the tools cover basic utilities (notes, weather, news), the scope seems limited compared to the implied integration purpose, bordering on under-scoped.
Inferring the domain as agentic integration utilities, there are significant gaps: no tools for agent coordination, task management, or data processing beyond simple fetches. The note tools lack update/delete operations, and overall coverage is incomplete for enabling complex agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
Nifty's MCP server โ exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA FastMCP-based server providing tools for weather queries, random number generation, and real-time stock market data retrieval. It enables AI models to interact with external data and perform specific tasks through the Model Context Protocol.-
- FlicenseNot gradedqualityCmaintenanceA production-ready Python MCP server providing tools for fetching live weather data, querying local SQLite databases, reading files, summarizing webpages, and performing safe mathematical calculations. It enables MCP-compatible LLM clients to execute these tasks autonomously as part of agentic workflows.-
- FlicenseNot gradedqualityDmaintenanceMulti-agent AI tools for email automation (Outlook), weather (OpenWeather API), sticky notes, and arithmetic, all served via FastMCP.-
- FlicenseNot gradedqualityDmaintenanceA FastMCP server that exposes a locally-hosted llama.cpp LLM as MCP tools, plus utilities for weather, news, web fetching, file I/O, and more. Enables MCP-compatible clients to use a local GGUF model for text generation without external APIs.1-
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/vad-007/MCP_Integration_crewai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server