Name | crewai-tools JSON |
Version |
0.58.0
JSON |
| download |
home_page | None |
Summary | Set of tools for the crewAI framework |
upload_time | 2025-07-23 17:45:53 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <3.14,>=3.10 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<div align="center">

<div align="left">
# CrewAI Tools
Empower your CrewAI agents with powerful, customizable tools to elevate their capabilities and tackle sophisticated, real-world tasks.
CrewAI Tools provide the essential functionality to extend your agents, helping you rapidly enhance your automations with reliable, ready-to-use tools or custom-built solutions tailored precisely to your needs.
---
## Quick Links
[Homepage](https://www.crewai.com/) | [Documentation](https://docs.crewai.com/) | [Examples](https://github.com/crewAIInc/crewAI-examples) | [Community](https://community.crewai.com/)
---
## Available Tools
CrewAI provides an extensive collection of powerful tools ready to enhance your agents:
- **File Management**: `FileReadTool`, `FileWriteTool`
- **Web Scraping**: `ScrapeWebsiteTool`, `SeleniumScrapingTool`
- **Database Integrations**: `PGSearchTool`, `MySQLSearchTool`
- **Vector Database Integrations**: `MongoDBVectorSearchTool`, `QdrantVectorSearchTool`, `WeaviateVectorSearchTool`
- **API Integrations**: `SerperApiTool`, `EXASearchTool`
- **AI-powered Tools**: `DallETool`, `VisionTool`, `StagehandTool`
And many more robust tools to simplify your agent integrations.
---
## Creating Custom Tools
CrewAI offers two straightforward approaches to creating custom tools:
### Subclassing `BaseTool`
Define your tool by subclassing:
```python
from crewai.tools import BaseTool
class MyCustomTool(BaseTool):
name: str = "Tool Name"
description: str = "Detailed description here."
def _run(self, *args, **kwargs):
# Your tool logic here
```
### Using the `tool` Decorator
Quickly create lightweight tools using decorators:
```python
from crewai import tool
@tool("Tool Name")
def my_custom_function(input):
# Tool logic here
return output
```
---
## CrewAI Tools and MCP
CrewAI Tools supports the Model Context Protocol (MCP). It gives you access to thousands of tools from the hundreds of MCP servers out there built by the community.
Before you start using MCP with CrewAI tools, you need to install the `mcp` extra dependencies:
```bash
pip install crewai-tools[mcp]
# or
uv add crewai-tools --extra mcp
```
To quickly get started with MCP in CrewAI you have 2 options:
### Option 1: Fully managed connection
In this scenario we use a contextmanager (`with` statement) to start and stop the the connection with the MCP server.
This is done in the background and you only get to interact with the CrewAI tools corresponding to the MCP server's tools.
For an STDIO based MCP server:
```python
from mcp import StdioServerParameters
from crewai_tools import MCPServerAdapter
serverparams = StdioServerParameters(
command="uvx",
args=["--quiet", "pubmedmcp@0.1.3"],
env={"UV_PYTHON": "3.12", **os.environ},
)
with MCPServerAdapter(serverparams) as tools:
# tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools
agent = Agent(..., tools=tools)
task = Task(...)
crew = Crew(..., agents=[agent], tasks=[task])
crew.kickoff(...)
```
For an SSE based MCP server:
```python
serverparams = {"url": "http://localhost:8000/sse"}
with MCPServerAdapter(serverparams) as tools:
# tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools
agent = Agent(..., tools=tools)
task = Task(...)
crew = Crew(..., agents=[agent], tasks=[task])
crew.kickoff(...)
```
### Option 2: More control over the MCP connection
If you need more control over the MCP connection, you can instanciate the MCPServerAdapter into an `mcp_server_adapter` object which can be used to manage the connection with the MCP server and access the available tools.
**important**: in this case you need to call `mcp_server_adapter.stop()` to make sure the connection is correctly stopped. We recommend that you use a `try ... finally` block run to make sure the `.stop()` is called even in case of errors.
Here is the same example for an STDIO MCP Server:
```python
from mcp import StdioServerParameters
from crewai_tools import MCPServerAdapter
serverparams = StdioServerParameters(
command="uvx",
args=["--quiet", "pubmedmcp@0.1.3"],
env={"UV_PYTHON": "3.12", **os.environ},
)
try:
mcp_server_adapter = MCPServerAdapter(serverparams)
tools = mcp_server_adapter.tools
# tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools
agent = Agent(..., tools=tools)
task = Task(...)
crew = Crew(..., agents=[agent], tasks=[task])
crew.kickoff(...)
# ** important ** don't forget to stop the connection
finally:
mcp_server_adapter.stop()
```
And finally the same thing but for an SSE MCP Server:
```python
from mcp import StdioServerParameters
from crewai_tools import MCPServerAdapter
serverparams = {"url": "http://localhost:8000/sse"}
try:
mcp_server_adapter = MCPServerAdapter(serverparams)
tools = mcp_server_adapter.tools
# tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools
agent = Agent(..., tools=tools)
task = Task(...)
crew = Crew(..., agents=[agent], tasks=[task])
crew.kickoff(...)
# ** important ** don't forget to stop the connection
finally:
mcp_server_adapter.stop()
```
### Considerations & Limitations
#### Staying Safe with MCP
Always make sure that you trust the MCP Server before using it. Using an STDIO server will execute code on your machine. Using SSE is still not a silver bullet with many injection possible into your application from a malicious MCP server.
#### Limitations
* At this time we only support tools from MCP Server not other type of primitives like prompts, resources...
* We only return the first text output returned by the MCP Server tool using `.content[0].text`
---
## Why Use CrewAI Tools?
- **Simplicity & Flexibility**: Easy-to-use yet powerful enough for complex workflows.
- **Rapid Integration**: Seamlessly incorporate external services, APIs, and databases.
- **Enterprise Ready**: Built for stability, performance, and consistent results.
---
## Contribution Guidelines
We welcome contributions from the community!
1. Fork and clone the repository.
2. Create a new branch (`git checkout -b feature/my-feature`).
3. Commit your changes (`git commit -m 'Add my feature'`).
4. Push your branch (`git push origin feature/my-feature`).
5. Open a pull request.
---
## Developer Quickstart
```shell
pip install crewai[tools]
```
### Development Setup
- Install dependencies: `uv sync`
- Run tests: `uv run pytest`
- Run static type checking: `uv run pyright`
- Set up pre-commit hooks: `pre-commit install`
---
## Support and Community
Join our rapidly growing community and receive real-time support:
- [Discourse](https://community.crewai.com/)
- [Open an Issue](https://github.com/crewAIInc/crewAI/issues)
Build smarter, faster, and more powerful AI solutions—powered by CrewAI Tools.
Raw data
{
"_id": null,
"home_page": null,
"name": "crewai-tools",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Jo\u00e3o Moura <joaomdmoura@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/1f/bf/72c3a0cb5a8be1f635a4e3b07ee2ad81a6d427e63b7748c2727a33ade0d4/crewai_tools-0.58.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n\n\n\n<div align=\"left\">\n\n# CrewAI Tools\n\nEmpower your CrewAI agents with powerful, customizable tools to elevate their capabilities and tackle sophisticated, real-world tasks.\n\nCrewAI Tools provide the essential functionality to extend your agents, helping you rapidly enhance your automations with reliable, ready-to-use tools or custom-built solutions tailored precisely to your needs.\n\n---\n\n## Quick Links\n\n[Homepage](https://www.crewai.com/) | [Documentation](https://docs.crewai.com/) | [Examples](https://github.com/crewAIInc/crewAI-examples) | [Community](https://community.crewai.com/)\n\n---\n\n## Available Tools\n\nCrewAI provides an extensive collection of powerful tools ready to enhance your agents:\n\n- **File Management**: `FileReadTool`, `FileWriteTool`\n- **Web Scraping**: `ScrapeWebsiteTool`, `SeleniumScrapingTool`\n- **Database Integrations**: `PGSearchTool`, `MySQLSearchTool`\n- **Vector Database Integrations**: `MongoDBVectorSearchTool`, `QdrantVectorSearchTool`, `WeaviateVectorSearchTool`\n- **API Integrations**: `SerperApiTool`, `EXASearchTool`\n- **AI-powered Tools**: `DallETool`, `VisionTool`, `StagehandTool`\n\nAnd many more robust tools to simplify your agent integrations.\n\n---\n\n## Creating Custom Tools\n\nCrewAI offers two straightforward approaches to creating custom tools:\n\n### Subclassing `BaseTool`\n\nDefine your tool by subclassing:\n\n```python\nfrom crewai.tools import BaseTool\n\nclass MyCustomTool(BaseTool):\n name: str = \"Tool Name\"\n description: str = \"Detailed description here.\"\n\n def _run(self, *args, **kwargs):\n # Your tool logic here\n```\n\n### Using the `tool` Decorator\n\nQuickly create lightweight tools using decorators:\n\n```python\nfrom crewai import tool\n\n@tool(\"Tool Name\")\ndef my_custom_function(input):\n # Tool logic here\n return output\n```\n\n---\n\n## CrewAI Tools and MCP\n\nCrewAI Tools supports the Model Context Protocol (MCP). It gives you access to thousands of tools from the hundreds of MCP servers out there built by the community.\n\nBefore you start using MCP with CrewAI tools, you need to install the `mcp` extra dependencies:\n\n```bash\npip install crewai-tools[mcp]\n# or\nuv add crewai-tools --extra mcp\n```\n\nTo quickly get started with MCP in CrewAI you have 2 options:\n\n### Option 1: Fully managed connection\n\nIn this scenario we use a contextmanager (`with` statement) to start and stop the the connection with the MCP server.\nThis is done in the background and you only get to interact with the CrewAI tools corresponding to the MCP server's tools.\n\nFor an STDIO based MCP server:\n\n```python\nfrom mcp import StdioServerParameters\nfrom crewai_tools import MCPServerAdapter\n\nserverparams = StdioServerParameters(\n command=\"uvx\",\n args=[\"--quiet\", \"pubmedmcp@0.1.3\"],\n env={\"UV_PYTHON\": \"3.12\", **os.environ},\n)\n\nwith MCPServerAdapter(serverparams) as tools:\n # tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools\n agent = Agent(..., tools=tools)\n task = Task(...)\n crew = Crew(..., agents=[agent], tasks=[task])\n crew.kickoff(...)\n```\nFor an SSE based MCP server:\n\n```python\nserverparams = {\"url\": \"http://localhost:8000/sse\"}\nwith MCPServerAdapter(serverparams) as tools:\n # tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools\n agent = Agent(..., tools=tools)\n task = Task(...)\n crew = Crew(..., agents=[agent], tasks=[task])\n crew.kickoff(...)\n```\n\n### Option 2: More control over the MCP connection\n\nIf you need more control over the MCP connection, you can instanciate the MCPServerAdapter into an `mcp_server_adapter` object which can be used to manage the connection with the MCP server and access the available tools.\n\n**important**: in this case you need to call `mcp_server_adapter.stop()` to make sure the connection is correctly stopped. We recommend that you use a `try ... finally` block run to make sure the `.stop()` is called even in case of errors.\n\nHere is the same example for an STDIO MCP Server:\n\n```python\nfrom mcp import StdioServerParameters\nfrom crewai_tools import MCPServerAdapter\n\nserverparams = StdioServerParameters(\n command=\"uvx\",\n args=[\"--quiet\", \"pubmedmcp@0.1.3\"],\n env={\"UV_PYTHON\": \"3.12\", **os.environ},\n)\n\ntry:\n mcp_server_adapter = MCPServerAdapter(serverparams)\n tools = mcp_server_adapter.tools\n # tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools\n agent = Agent(..., tools=tools)\n task = Task(...)\n crew = Crew(..., agents=[agent], tasks=[task])\n crew.kickoff(...)\n\n# ** important ** don't forget to stop the connection\nfinally: \n mcp_server_adapter.stop()\n```\n\nAnd finally the same thing but for an SSE MCP Server:\n\n```python\nfrom mcp import StdioServerParameters\nfrom crewai_tools import MCPServerAdapter\n\nserverparams = {\"url\": \"http://localhost:8000/sse\"}\n\ntry:\n mcp_server_adapter = MCPServerAdapter(serverparams)\n tools = mcp_server_adapter.tools\n # tools is now a list of CrewAI Tools matching 1:1 with the MCP server's tools\n agent = Agent(..., tools=tools)\n task = Task(...)\n crew = Crew(..., agents=[agent], tasks=[task])\n crew.kickoff(...)\n\n# ** important ** don't forget to stop the connection\nfinally: \n mcp_server_adapter.stop()\n```\n\n### Considerations & Limitations\n\n#### Staying Safe with MCP\n\nAlways make sure that you trust the MCP Server before using it. Using an STDIO server will execute code on your machine. Using SSE is still not a silver bullet with many injection possible into your application from a malicious MCP server.\n\n#### Limitations\n\n* At this time we only support tools from MCP Server not other type of primitives like prompts, resources...\n* We only return the first text output returned by the MCP Server tool using `.content[0].text`\n\n---\n\n## Why Use CrewAI Tools?\n\n- **Simplicity & Flexibility**: Easy-to-use yet powerful enough for complex workflows.\n- **Rapid Integration**: Seamlessly incorporate external services, APIs, and databases.\n- **Enterprise Ready**: Built for stability, performance, and consistent results.\n\n---\n\n## Contribution Guidelines\n\nWe welcome contributions from the community!\n\n1. Fork and clone the repository.\n2. Create a new branch (`git checkout -b feature/my-feature`).\n3. Commit your changes (`git commit -m 'Add my feature'`).\n4. Push your branch (`git push origin feature/my-feature`).\n5. Open a pull request.\n\n---\n\n## Developer Quickstart\n\n```shell\npip install crewai[tools]\n```\n\n### Development Setup\n\n- Install dependencies: `uv sync`\n- Run tests: `uv run pytest`\n- Run static type checking: `uv run pyright`\n- Set up pre-commit hooks: `pre-commit install`\n\n---\n\n## Support and Community\n\nJoin our rapidly growing community and receive real-time support:\n\n- [Discourse](https://community.crewai.com/)\n- [Open an Issue](https://github.com/crewAIInc/crewAI/issues)\n\nBuild smarter, faster, and more powerful AI solutions\u2014powered by CrewAI Tools.\n",
"bugtrack_url": null,
"license": null,
"summary": "Set of tools for the crewAI framework",
"version": "0.58.0",
"project_urls": {
"Documentation": "https://docs.crewai.com",
"Homepage": "https://crewai.com",
"Repository": "https://github.com/crewAIInc/crewAI-tools"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "34bd1de36fbf8fb717817d3bf72a94da38e27af6cc5b888d7c1203a3f0b0cc2f",
"md5": "9c0fba825dd0b5e9ecf596997d384ad7",
"sha256": "151688bf0fa8c90e27dcdbaa8619f3dee2a14e97f1b420a38187b12d88305175"
},
"downloads": -1,
"filename": "crewai_tools-0.58.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9c0fba825dd0b5e9ecf596997d384ad7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.10",
"size": 650113,
"upload_time": "2025-07-23T17:45:51",
"upload_time_iso_8601": "2025-07-23T17:45:51.056010Z",
"url": "https://files.pythonhosted.org/packages/34/bd/1de36fbf8fb717817d3bf72a94da38e27af6cc5b888d7c1203a3f0b0cc2f/crewai_tools-0.58.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1fbf72c3a0cb5a8be1f635a4e3b07ee2ad81a6d427e63b7748c2727a33ade0d4",
"md5": "0636dd9c4303b61e4f1cd34222158e0c",
"sha256": "ea82d5df8611ae22a8291934c4cd0b7ed5b77eca475f81014f018b7eca4d3350"
},
"downloads": -1,
"filename": "crewai_tools-0.58.0.tar.gz",
"has_sig": false,
"md5_digest": "0636dd9c4303b61e4f1cd34222158e0c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.10",
"size": 1026853,
"upload_time": "2025-07-23T17:45:53",
"upload_time_iso_8601": "2025-07-23T17:45:53.228553Z",
"url": "https://files.pythonhosted.org/packages/1f/bf/72c3a0cb5a8be1f635a4e3b07ee2ad81a6d427e63b7748c2727a33ade0d4/crewai_tools-0.58.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-23 17:45:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "crewAIInc",
"github_project": "crewAI-tools",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "crewai-tools"
}