Basic MCP Tools
Provides private web search through a bundled SearXNG instance, returning titles, URLs, and snippets.
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., "@Basic MCP Toolssearch for renewable energy news"
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.
Basic MCP Tools
A small, self-hosted MCP (Model Context Protocol) server that gives your LLM a few essential tools: private web search, web page fetching, and the current date/time. It ships with its own SearXNG instance via Docker Compose, so search stays local and doesn't require any API keys.
Tools
Tool | Description |
| Search the web through the bundled SearXNG instance. Returns titles, URLs, and snippets. |
| Fetch a URL and return its cleaned, readable text (scripts, nav, footers, etc. stripped out). |
| Get the current date ( |
| Get the current local time with timezone. |
Related MCP server: searxng-mcp
Quick start (Docker Compose)
Requires Docker with the Compose plugin.
git clone https://github.com/Tyguy047/Basic-MCP-Tools.git
cd Basic-MCP-Tools
docker compose up -d --buildThis starts two containers:
searxng — the search backend. It is only reachable from inside the Compose network (not published to your host).
basic-mcp-tools — the MCP server, listening on port 8080 using the streamable HTTP transport.
The MCP endpoint is:
http://localhost:8080/mcpConnect a client
Any MCP client that supports streamable HTTP will work. For example, with Claude Code:
claude mcp add --transport http basic-tools http://localhost:8080/mcpOr in a JSON-based client config:
{
"mcpServers": {
"basic-tools": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}Configuration
Timezone —
get_date/get_timeuse the container's timezone. SetTZindocker-compose.yml(defaults toAmerica/New_York).SearXNG — settings live in
searxng/settings.yml. The one requirement for thesearchtool is that thejsonoutput format stays enabled. The container generates a randomSEARXNG_SECRETon each start.Search backend location — the MCP server finds SearXNG through the
SEARXNG_IPandSEARXNG_PORTenvironment variables (set indocker-compose.yml).
Running without Docker
You can run the server directly if you point it at an existing SearXNG instance (one with the json format enabled):
pip install -r requirements.txt
export SEARXNG_IP=<searxng-host>
export SEARXNG_PORT=<searxng-port>
python main.pyThe server listens on 0.0.0.0:8080. Python 3.14 is used in the Docker image; other recent versions should work too.
Project layout
main.py # FastMCP server; registers the tools
functions/
searxng.py # search — queries SearXNG's JSON API
fetch.py # fetch_page — httpx + BeautifulSoup text extraction
date.py # get_date
time.py # get_time
searxng/settings.yml # SearXNG config (enables JSON output)
docker-compose.yml # searxng + mcp-tools services
Dockerfile # Python 3.14 slim image for the MCP serverNotes
The server is unauthenticated and intended for local or trusted-network use. Don't expose port 8080 to the public internet as-is.
Adding a new tool is two steps: write a function in
functions/(its docstring becomes the tool description) and register it inmain.pywithmcp.tool()(your_function).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/Tyguy047/Basic-MCP-Tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server