An MCP server that exposes GoLinks as tools for AI assistants. Built with FastMCP.
This server is intended to run as a hosted remote MCP server over Streamable HTTP.
Public endpoint shape:
https://mcp.golinks.io/mcp
Local development endpoint shape:
http://localhost:8000/mcp
The hosted server does not use a shared GOLINKS_API_TOKEN.
MCP clients should send a per-user GoLinks OAuth/API bearer token with each request:
Authorization: Bearer YOUR_TOKENThe MCP server forwards that header to api.golinks.io. GoLinks remains responsible for token validation, scope enforcement, refresh, storage, and revocation.
An OAuth client must be pre-registered in your GoLinks workspace with:
- Allowed scopes:
golinks:read,golinks:write,search:read - Redirect URIs: the exact callback URL(s) your MCP client uses
To do so, visit the OAuth Apps page under Developer Tools, on the GoLinks dashboard
This project uses Python 3.12 and uv.
- Install Python
3.12. - Install
uv. - Create the local environment and install dependencies:
uv sync- Run the MCP server locally:
uv run python -m golinks_mcpThe server binds to 0.0.0.0:8000 by default. Override with MCP_HOST and MCP_PORT if you need a different host or port:
MCP_HOST=127.0.0.1 MCP_PORT=9000 uv run python -m golinks_mcp- Verify health and OAuth discovery:
curl http://localhost:8000/health
curl http://localhost:8000/.well-known/oauth-authorization-serverBuild and run locally:
docker build -t golinks-mcp .
docker run --rm -p 8000:8000 golinks-mcp| Tool | Description | Scope |
|---|---|---|
list_golinks |
List all company go links (paginated) | golinks:read |
get_golink |
Get a single go link by name or numeric ID | golinks:read |
search_golinks |
Fuzzy keyword search across go links | search:read |
create_golink |
Create a new go link (standard only) | golinks:write |