mcp-toolkit
mcp-toolkit is a general-purpose MCP server for AI agents with the following capabilities:
Web Search — Search the web via DuckDuckGo with optional deep content extraction using Playwright, configurable result count (up to 10), and language support.
URL Fetching — Extract main content from a direct HTTP/HTTPS URL using Playwright.
Generic HTTP Requests — Execute GET, POST, PUT, PATCH, DELETE, HEAD, or OPTIONS requests with optional headers and body.
Time & Date Utilities — Get current time in any timezone, convert between timezones, parse dates, add durations, and calculate differences.
Persistent Memory (Key-Value Store) — Store, retrieve, delete, list, search, and clear key-value pairs persistently via SQLite, with namespace support.
Sandboxed Python Execution — Run Python code in an isolated subprocess with configurable timeout (up to 60s), memory limit (256MB on Linux), optional stdin, and no network access.
Sandboxed JavaScript Execution — Run Node.js code in an isolated subprocess with the same safety restrictions as Python (requires Node.js installed).
Provides web search capabilities using DuckDuckGo, allowing AI agents to search the web and extract content from web pages with configurable parameters like result count and language.
Supports installation directly from GitHub repositories and provides development tools for extending the MCP server with custom functionality.
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-toolkitsearch for latest Python 3.14 release notes with deep extraction"
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-toolkit
General-purpose MCP server for AI agents. Built with Python 3.13, FastMCP, and Playwright.
Available tools
Tool | Description |
| Searches DuckDuckGo and extracts web content with Playwright |
| Extracts the main content from a direct URL |
| Executes generic HTTP requests without Playwright |
| Returns the current date and time in a specific timezone |
| Converts timezones and calculates dates/durations |
| Saves a persistent value in SQLite |
| Retrieves a saved value |
| Deletes a key |
| Lists all keys (with optional prefix filter) |
| Clears all memory (irreversible!) |
| Searches for text in saved keys and values |
| Executes Python code in a sandboxed environment with a timeout |
| Executes JavaScript code with Node.js in a sandboxed environment with a timeout |
Related MCP server: MCP Server
Installation
Prerequisites
UV installed
Python 3.13 (UV downloads it automatically if not present)
Node.js (optional, only for
run_js)
Option A — Install from local folder
git clone https://github.com/YoshiLoL0526/mcp-toolkit
cd mcp-toolkit
uv tool install --python 3.13 .Option B — Install directly from GitHub
uv tool install --python 3.13 git+https://github.com/YoshiLoL0526/mcp-toolkitMandatory step: install Chromium for Playwright
After installing the package, run this command once:
# Obtener la ruta del entorno virtual creado por uv tool
uv tool run --from mcp-toolkit python -m playwright install chromiumOr alternatively, if you know the environment path:
~/.local/share/uv/tools/mcp-toolkit/bin/python -m playwright install chromiumConfiguration in MCP clients
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)
{
"mcpServers": {
"mcp-toolkit": {
"command": "mcp-toolkit"
}
}
}On Windows, the path is
%APPDATA%\Claude\claude_desktop_config.json
Cursor / VS Code (.cursor/mcp.json or .vscode/mcp.json)
{
"servers": {
"mcp-toolkit": {
"type": "stdio",
"command": "mcp-toolkit"
}
}
}HTTP Server (for remote access or multiple clients)
mcp-toolkit --transport http --host 0.0.0.0 --port 8080The server will listen on http://<host>:<port>/mcp using the streamable-http transport (current MCP standard). You can change the path with --path /other-path.
The
--transport ssetransport is maintained for compatibility with older clients, but it has been deprecated since FastMCP 2.3.
Using the tools
web_search
Parámetros:
query (str) — texto a buscar
max_results (int) — resultados a devolver, default 5, máximo 10
deep (bool) — si True, extrae el contenido completo de cada página
language (str) — idioma para las cabeceras HTTP, default "es-ES"Example (agent):
Busca las últimas noticias sobre Python 3.13 con deep=Truefetch_url
Parámetros:
url (str) — URL absoluta HTTP o HTTPS a leerExample (agent):
Lee https://example.com/articulo con fetch_urlhttp_request
Parámetros:
method (str) — método HTTP: GET, POST, PUT, PATCH, DELETE, HEAD u OPTIONS
url (str) — URL absoluta HTTP o HTTPS
headers (dict) — cabeceras opcionales
body (str) — cuerpo opcional como texto
timeout (int) — segundos máximos, default 10, máximo 60Example (agent):
Haz un POST a https://api.example.com/items con http_requesttime_now / date_utils
time_now(timezone_name="UTC")
date_utils(
action="convert_timezone",
value="2026-04-21T12:00:00+00:00",
target_timezone="America/New_York"
)Actions supported by date_utils: parse, convert_timezone, add, and diff. For dates without an offset, timezone_name is used; timezones must be IANA names like UTC, America/New_York, or Europe/Madrid.
memory_set / memory_get
memory_set(key="usuario_nombre", value="Carlos", namespace="default")
memory_get(key="usuario_nombre", namespace="default")
memory_list(prefix="usuario_", namespace="default")
memory_search(query="Carlos", namespace="default")Data is saved in ~/.local/share/mcp-toolkit/memory.db.
All memory tools accept a namespace to separate data by project, client, or conversation. If not specified, default is used.
run_python
Parámetros:
code (str) — código Python a ejecutar
timeout (int) — segundos máximos, default 10, máximo 60
stdin (str) — entrada estándar opcionalSecurity restrictions:
Minimal environment: does not inherit secrets or arbitrary variables from the host process
Temporary working directory per execution
HTTP proxies overridden by environment variables
Memory limit: 256 MB (Linux/macOS)
Strict timeout: the process is killed when time runs out
On Windows, there is no per-process memory limit applied from Python
Network blocking is not a guarantee of strong isolation; for untrusted code, it is recommended to run the server inside a container or VM with network policies
run_js
Same parameters as run_python. Requires Node.js installed on the system.
Development
git clone https://github.com/YoshiLoL0526/mcp-toolkit
cd mcp-toolkit
uv sync
uv run python -m playwright install chromium
# Ejecutar en modo desarrollo
uv run mcp-toolkit
# Tests
uv run pytestAdding a new tool
Create
mcp_toolkit/tools/my_tool.pywith anasync def my_tool(...) -> strfunctionImport and register it in
server.pywithmcp.tool()(my_tool)Reinstall:
uv tool install --python 3.13 . --reinstall
Project structure
mcp-toolkit/
├── pyproject.toml
├── README.md
├── mcp_toolkit/
│ ├── server.py # FastMCP app + registro
│ ├── tools/
│ │ ├── web_search.py # Playwright: buscar + extraer
│ │ ├── fetch_url.py # Extraer una URL directa
│ │ ├── http_request.py # Cliente HTTP genérico
│ │ ├── date_time.py # Fechas, zonas horarias y duraciones
│ │ ├── memory.py # SQLite KV store con namespaces
│ │ ├── run_python.py # Sandbox Python
│ │ └── run_js.py # Sandbox Node.js
│ └── utils/
│ ├── browser.py # Singleton Playwright
│ └── sandbox.py # Helpers de subprocess y timeout
└── tests/License
MIT
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 Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables web searching, URL content extraction, and summarization without requiring API keys. It also provides advanced mathematical evaluation and multi-language Wikipedia summary retrieval tools.51596MIT
- Alicense-qualityDmaintenanceA modular MCP server providing file operations, web search, URL scraping, and sandboxed command execution for LLM interactions.1MIT
- AlicenseAqualityBmaintenanceAn MCP server that provides real-time web search to AI agents via a pay-per-search USDC microtransaction system.5592MIT
- Alicense-qualityDmaintenanceA powerful MCP server that enables LLMs to safely execute code, control file systems, search the web, and integrate with services like Gmail and TMDB.MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Cloud-hosted MCP server for durable AI memory
An MCP server that gives your AI access to the source code and docs of all public github repos
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/YoshiLoL0526/mcp-toolkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server