groundlink-mcp
by ohhavefun
README.md
# Groundlink MCP Server
Use Groundlink's cited web-search results from any Model Context Protocol (MCP)
host. The server exposes one focused tool, `groundlink_search`, which sends a
query to Groundlink and returns source-bearing results (`title`, `url`,
`snippet`, and `source`) for the model to use when it needs evidence rather
than a guess.
Groundlink currently combines Wikipedia and DuckDuckGo results. Each Groundlink
API key includes **100 free test queries**; after that, prepaid usage is
**$0.001 per query** (one credit per query).
> **Package:** [`groundlink-mcp@0.1.1`](https://www.npmjs.com/package/groundlink-mcp) is published on npm.
> **Source:** https://github.com/ohhavefun/groundlink
- Live API documentation: https://9ea69cec60fa01f65bbb647a092bcbb4.ctonew.app/docs
- Pricing and credits: https://9ea69cec60fa01f65bbb647a092bcbb4.ctonew.app/pricing
This repository is the home of Groundlink's **official developer integrations**.
There are two, both maintained here:
| Integration | What it is | Install |
| --- | --- | --- |
| **groundlink-mcp** (MCP server) | Exposes Groundlink to any MCP host (Claude, Cursor, …) | `npm install -g groundlink-mcp` (also on the [official MCP registry](https://registry.modelcontextprotocol.io) as `io.github.ohhavefun/groundlink`) |
| **langchain-groundlink** (Python/LangChain) | A `GroundlinkSearchTool` for Python agents | `pip install "langchain-groundlink @ git+https://github.com/ohhavefun/groundlink#subdirectory=langchain-groundlink"` |
Both use the same free trial keys (100 queries) from the Groundlink onboarding,
then prepaid usage at $0.001/query.
## Where Groundlink is listed
[](https://mcpservers.org/servers/ohhavefun/groundlink)
---
## langchain-groundlink (Python / LangChain)
Use Groundlink's cited search from any Python agent or `BaseTool` pipeline.
The tool returns source-bearing results (`title`, `url`, `snippet`, `source`)
so your agent answers from evidence and can cite it.
**Install from GitHub** (the package is intentionally not on PyPI):
```bash
pip install "langchain-groundlink @ git+https://github.com/ohhavefun/groundlink#subdirectory=langchain-groundlink"
```
**Quick usage (10 seconds):** get a free key from
[the docs](https://9ea69cec60fa01f65bbb647a092bcbb4.ctonew.app/docs), then:
```python
from langchain_groundlink import GroundlinkSearchTool
tool = GroundlinkSearchTool(api_key="glk_your_trial_key") # or export GROUNDLINK_API_KEY
result = tool.invoke({"query": "Who was Ada Lovelace?"})
print(result)
```
Full usage, configuration, and error handling are in
[`langchain-groundlink/README.md`](langchain-groundlink/README.md).
---
## Groundlink MCP Server
Use Groundlink's cited web-search results from any Model Context Protocol (MCP)
host below.
| Field | Value |
| --- | --- |
| Tool name | `groundlink_search` |
| Input | `{ query: string, max_results?: number }` |
| `max_results` | 1–10; default 5 (or `GROUNDLINK_MAX_RESULTS`) |
| Output | JSON: `{ query, results: [{ title, url, snippet, source }], meta }` |
Use it for factual questions where the host should return URLs/sources with its
answer. The MCP server is deliberately thin: it forwards the query to the
Groundlink HTTPS API and returns the API response over MCP **stdio**.
## Install and run
You need a Groundlink API key (`glk_...`). Ask the Groundlink operator for one
or obtain one through the Groundlink onboarding flow.
```bash
npm install -g groundlink-mcp
export GROUNDLINK_API_KEY=glk_your_key_here
groundlink-mcp
```
Alternatively, an MCP host can execute the package without a global install:
```bash
npx -y groundlink-mcp
```
The process uses stdio; it does not open an HTTP port or print normal output to
stdout. MCP hosts should launch it rather than running it interactively.
### Configuration
| Variable | Required | Default | Meaning |
| --- | --- | --- | --- |
| `GROUNDLINK_API_KEY` | Yes | — | API key used for every Groundlink request. |
| `GROUNDLINK_BASE_URL` | No | Groundlink live URL | Override only for a compatible deployment. |
| `GROUNDLINK_MAX_RESULTS` | No | `5` | Default results per tool call; capped at `10`. |
## Claude Desktop configuration
Add this entry to Claude Desktop's MCP configuration file
and restart Claude Desktop. Keep the API key private: do not commit it to a
repository or share the configuration file.
```json
{
"mcpServers": {
"groundlink": {
"command": "npx",
"args": ["-y", "groundlink-mcp"],
"env": {
"GROUNDLINK_API_KEY": "glk_your_key_here"
}
}
}
}
```
If the package is installed globally, use `"command": "groundlink-mcp"` and
omit `args`. For hosts that need an absolute executable path, point `command`
at the installed `groundlink-mcp` binary.
## What happens on errors
- Missing `GROUNDLINK_API_KEY`: the server exits at startup with a clear setup
error.
- API key rejected (401): returned to the MCP host as a tool error; correct the
key rather than retrying.
- No remaining free or prepaid credits (402): returned as a tool error; fund
the key before another search.
- Search-source outage (502): returned as a tool error; a short retry may help.
## Marketplace description
**Groundlink — cited web search for MCP.** Give Claude, Cursor, and other MCP
hosts one `groundlink_search` tool that returns source-bearing results instead
of unsupported factual guesses. Every key starts with 100 free tests, then
usage is $0.001 per query through prepaid credits.
## Development and release checks
```bash
bun install
bun run typecheck
bun run build # emits executable dist/index.js
bun run test # MCP stdio smoke test
npm run pack:check # inspect the npm tarball without publishing
```
The npm package intentionally ships only the compiled `dist/` runtime, this
README, and npm's required package metadata. Source and smoke tests stay out of
the tarball.
TDQS
A4.4/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of overlap or confusion between tools. The single search tool has a clearly defined purpose.
Naming Consistency5/5
The tool name follows a clear and logical pattern: groundlink_search. Although there is only one tool, the naming is consistent with common conventions and leaves no ambiguity.
Tool Count3/5
A single tool feels thin for a server, but it is focused on one specific search function that could be reasonably self-contained. It does not appear excessive, yet the surface is minimal.
Completeness5/5
For a search-focused server, the tool fully covers the core capability of searching and returning cited results. There are no obvious missing operations for its apparent purpose.
Maintenance
ActivityMaintained
ResponsivenessNo issues