Skip to main content
Glama

mcp-toolkit

General-purpose MCP server for AI agents. Built with Python 3.13, FastMCP, and Playwright.

Available tools

Tool

Description

web_search

Searches DuckDuckGo and extracts web content with Playwright

fetch_url

Extracts the main content from a direct URL

http_request

Executes generic HTTP requests without Playwright

time_now

Returns the current date and time in a specific timezone

date_utils

Converts timezones and calculates dates/durations

memory_set

Saves a persistent value in SQLite

memory_get

Retrieves a saved value

memory_delete

Deletes a key

memory_list

Lists all keys (with optional prefix filter)

memory_clear

Clears all memory (irreversible!)

memory_search

Searches for text in saved keys and values

run_python

Executes Python code in a sandboxed environment with a timeout

run_js

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-toolkit

Mandatory 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 chromium

Or alternatively, if you know the environment path:

~/.local/share/uv/tools/mcp-toolkit/bin/python -m playwright install chromium

Configuration 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 8080

The 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 sse transport is maintained for compatibility with older clients, but it has been deprecated since FastMCP 2.3.


Using the tools

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=True

fetch_url

Parámetros:
  url (str) — URL absoluta HTTP o HTTPS a leer

Example (agent):

Lee https://example.com/articulo con fetch_url

http_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 60

Example (agent):

Haz un POST a https://api.example.com/items con http_request

time_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 opcional

Security 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 pytest

Adding a new tool

  1. Create mcp_toolkit/tools/my_tool.py with an async def my_tool(...) -> str function

  2. Import and register it in server.py with mcp.tool()(my_tool)

  3. 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

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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

View all MCP Connectors

Latest Blog Posts

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