Crewai-MCP
Build an MCP agent using Crewai
Workflow of MCP powered Crewai RStudy Assistant
graph TD
%% User Interface Layer
A["🌐 User Interface<br/>Streamlit App<br/>(streamlit_app.py)"] --> B["⚙️ API Layer<br/>main_api.py"]
%% API Processing
B --> C["🚀 Subprocess Call<br/>python main.py {topic}"]
%% CrewAI Core
C --> D["🤖 CrewAI Application<br/>(main.py)<br/>Research Agent + Writer Agent"]
%% MCP Protocol Communication
D --> E["📡 MCP Protocol<br/>Model Context Protocol<br/>Communication Layer"]
%% MCP Servers
E --> F["🔍 Search MCP Server<br/>(servers/search_server.py)<br/>Python Implementation"]
E --> G["🎨 Image MCP Server<br/>(servers/image_server.py)<br/>Python Implementation"]
E --> H["📁 Filesystem MCP Server<br/>(NPX - Disabled)<br/>Node.js v14 Issue"]
%% External APIs
F --> I["🦁 Brave Search API<br/>Web Search Results"]
G --> J["🎭 Segmind API<br/>AI Image Generation"]
%% File Output Generation
D --> K["📄 File Generation"]
K --> L["📊 search_results.json<br/>Search Data"]
K --> M["📝 summary.txt<br/>Research Summary"]
K --> N["🖼️ generated_images/<br/>AI Generated Images"]
%% Result Processing
B --> O["🔄 Result Extraction<br/>File Detection & Parsing"]
O --> P["📋 Summary Extraction<br/>Multiple Pattern Recognition"]
O --> Q["🔍 Search Results Parsing<br/>JSON Processing"]
O --> R["🖼️ Image Collection<br/>File Listing"]
%% Display Results
P --> S["📑 Summary Tab<br/>Streamlit Display"]
Q --> T["🔍 Search Results Tab<br/>Streamlit Cards"]
R --> U["🎨 Generated Images Tab<br/>Streamlit Gallery"]
%% User Features
S --> V["💾 Download Summary<br/>Text File"]
U --> W["💾 Download Images<br/>ZIP Archive"]
%% System Monitoring
A --> X["📊 System Status<br/>MCP Server Health Check"]
%% Styling for different component types
classDef streamlit fill:#ff6b6b,stroke:#ff5252,stroke-width:3px,color:#fff
classDef crewai fill:#4ecdc4,stroke:#26a69a,stroke-width:3px,color:#fff
classDef mcp fill:#45b7d1,stroke:#039be5,stroke-width:3px,color:#fff
classDef api fill:#96ceb4,stroke:#66bb6a,stroke-width:3px,color:#fff
classDef files fill:#feca57,stroke:#ff9800,stroke-width:3px,color:#fff
%% Apply styles
class A,S,T,U,V,W,X streamlit
class D crewai
class E,F,G,H mcp
class I,J api
class K,L,M,N,O,P,Q,R files
class B,C streamlit
🏗️ Architecture Breakdown
📱 Frontend Layer
- streamlit_app.py - Main web interface with beautiful UI
- streamlit_app_backup.py - Backup version for safety
🔄 API & Integration Layer
- main_api.py - Bridge between Streamlit and CrewAI
- app.py - Alternative interface implementation
🤖 AI Core Layer
- main.py - CrewAI agents (Research + Writer)
- debug_summary.py - Summary extraction utilities
📡 MCP Server Layer
- servers/search_server.py - Web search via Brave API
- servers/image_server.py - Image generation via Segmind API
📊 Data Storage Layer
- servers/search_results/ - JSON files with search data (40+ topics)
- servers/images/ - Generated AI images (30+ visuals)
⚙️ Configuration & Utilities
- requirements.txt - Dependencies management
- setup_nodejs.py - Environment setup
- test_python_version.py - Compatibility testing
Run the Application without the UI
python main.py
Run the Application using streamlit
# Launch Streamlit app
streamlit run streamlit_app.py
Streamlit Interface
Metadata
Release files for iflow-mcp_plaban1981-crewai-search 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_plaban1981_crewai_search-0.1.0.tar.gz | 40.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_plaban1981_crewai_search-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.7 MB
Release files / iflow_mcp_plaban1981_crewai_search-0.1.0.tar.gz
| Download URL | iflow_mcp_plaban1981_crewai_search-0.1.0.tar.gz |
|---|---|
| Size | 40.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2c82f15c5fc7e98f5354b0792c28af500f1fb39da94668a59a09a2c42d2ee88e
|
|
BLAKE2b-256 checksum How to use checksums |
758af4c55339cbb2bf0f8de35d1352e53a5c1db92cbc4019dbe57265d8bd2992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_plaban1981_crewai_search-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_plaban1981_crewai_search-0.1.0-py3-none-any.whl |
|---|---|
| Size | 40.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d4fe13f202545ad5c9956a3be5931afd073b99b79da48a4defa2c792a11719ac
|
|
BLAKE2b-256 checksum How to use checksums |
dd09e7e365df5a63818eb9565e40a53f85565b802485a6772556f3133383969a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|