A Brave Search MCP Server built with CrewAI
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_plaban1981_crewai_search-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_plaban1981_crewai_search-0.1.0.tar.gz
- Upload date:
- Size: 40.3 MB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c82f15c5fc7e98f5354b0792c28af500f1fb39da94668a59a09a2c42d2ee88e
|
|
| MD5 |
c77689eeeb406c073c26a30b6aca9691
|
|
| BLAKE2b-256 |
758af4c55339cbb2bf0f8de35d1352e53a5c1db92cbc4019dbe57265d8bd2992
|
File details
Details for the file iflow_mcp_plaban1981_crewai_search-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_plaban1981_crewai_search-0.1.0-py3-none-any.whl
- Upload date:
- Size: 40.4 MB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4fe13f202545ad5c9956a3be5931afd073b99b79da48a4defa2c792a11719ac
|
|
| MD5 |
661fb856144c7b4b78405bd24a94d4ca
|
|
| BLAKE2b-256 |
dd09e7e365df5a63818eb9565e40a53f85565b802485a6772556f3133383969a
|