crewai-webzio
Search global news with Webz.io from CrewAI agents — in natural language, with the most relevant articles first.
Webz.io News Search covers news and current events from sources worldwide. Ask a question in plain language, narrow results with filters (language, country, date, sentiment, domain, ticker, and more), and get back focused article excerpts with titles, URLs, and metadata.
Use this package with CrewAI agents, or construct the tool directly to verify MCP connectivity.
What you get
- Natural-language search — no keyword hacking. Example:
"EU AI Act enforcement updates"or"How is Tesla stock reacting to earnings?" - Worldwide coverage — semantic search over Webz.io's global news index.
- Rich filters — language, country, days, sentiment, domain, ticker, person, organization, topic, and more. See the MCP tool reference.
- Live schema — filters are loaded from the hosted MCP server (
tools/list). New Webz filters appear automatically, without republishing this package. - CrewAI tool — pass
WebzioNewsSearchTool(...)toAgent(tools=[...]).
Install
pip install crewai-webzio
export WEBZ_API_TOKEN="your-webz-api-token"
For the agent example below, also configure an LLM provider (for example OPENAI_API_KEY).
Get a token from your Webz.io dashboard (same token as the News Search API).
Requires CrewAI with MCP support (crewai-tools[mcp], installed automatically).
Full setup and client options: MCP Server docs.
With a CrewAI agent
import os
from crewai import Agent, Crew, Task
from crewai_webzio import WebzioNewsSearchTool
with WebzioNewsSearchTool(api_token=os.environ["WEBZ_API_TOKEN"]) as news_tool:
researcher = Agent(
role="Research Analyst",
goal="Find recent news using news_search_by_webz",
backstory=(
"When calling news_search_by_webz, pass only the parameters explicitly "
"listed in the task. Do not add min_similarity, trust_gte, language, "
"country, or domain filters unless the task asks for them."
),
tools=[news_tool],
verbose=True,
)
research_task = Task(
description=(
"Call news_search_by_webz with exactly these arguments: "
"query='recent developments on EU AI regulation', k=3, days=30. "
"Do not add any other filters. Summarize headline, publisher, and URL."
),
expected_output="A summary with headline, publisher, and URL for each article.",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[research_task], verbose=True)
print(crew.kickoff())
Use the tool as a context manager (or call stop() when done) to shut down the MCP session.
Direct search (no agent required)
python examples/run_news_search.py
The script loads WEBZ_API_TOKEN from a nearby .env file (repo root or packages/crewai/.env) when the variable is not already exported.
from crewai_webzio import WebzioNewsSearchTool
with WebzioNewsSearchTool() as tool:
print(sorted(tool.arg_names)) # live filters from MCP tools/list
print(tool._run(
query="recent developments on EU AI regulation",
k=3,
days=30,
))
Using Webz via MCP (no package install)
CrewAI can connect to the hosted MCP server directly:
from crewai import Agent
from crewai.mcp import MCPServerHTTP
agent = Agent(
role="News Researcher",
goal="Find and summarize current news",
mcps=[
MCPServerHTTP(
url="https://news-search-mcp.webz.io/mcp",
headers={"Authorization": "Bearer YOUR_WEBZ_API_TOKEN"},
),
],
)
How it works
This package wraps CrewAI's MCPServerAdapter around the hosted Webz News Search MCP server at https://news-search-mcp.webz.io/mcp. Each tool call runs a regular News Search API request with your token (same credits and rate limits). Filter fields are not hardcoded — the tool schema comes from the live server.
Configuration
| Name | Default | Purpose |
|---|---|---|
WEBZ_API_TOKEN |
required | Webz API token from the dashboard |
WEBZ_MCP_URL |
https://news-search-mcp.webz.io/mcp |
Override for local MCP testing |
You can also pass api_token= and mcp_url= to WebzioNewsSearchTool().
Links
Release files for crewai-webzio 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| crewai_webzio-0.1.1.tar.gz | 10.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crewai_webzio-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.3 kB
Release files / crewai_webzio-0.1.1.tar.gz
| Download URL | crewai_webzio-0.1.1.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5e77f101f316e8de103943275ba3d150b687023f41222ce3376e842abc2b1a6
|
|
BLAKE2b-256 checksum How to use checksums |
33fed7c207cdf1f6b33a7d0fe8b70baf703fa81e2e909497128cde68abc769c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|
Release files / crewai_webzio-0.1.1-py3-none-any.whl
| Download URL | crewai_webzio-0.1.1-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a11e77da00fe07abc3ec478bf259e24669388fc54a164cadc25bdc2f65b2cbda
|
|
BLAKE2b-256 checksum How to use checksums |
90705488230f2d455b5ac3c60bd7d9fca8b88d8f56a2c7b53119d96b6530346e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|