MCP server
MyLinks exposes a Model Context Protocol server so an LLM agent can manage bookmarks through natural language, with the same reach as the REST API, minus admin actions and reordering: the REST API has reorder routes, but MCP has no reorder tools.
Endpoint: /api/mcp
Transport: Streamable HTTP: POST for JSON-RPC requests, GET for the SSE stream, DELETE to close a session.
Headers:
Authorization: Bearer <token>
Uses the same bearer tokens as the REST API, created from /user/settings. Tokens are shared: there is no MCP-specific token, and a token's scope applies per tool. A full_access token can call every tool, a read_only token can only call the read tools below, and a write tool called with it reports the refusal as a tool error inside the JSON-RPC response.
Connecting a client
Point any MCP client that supports Streamable HTTP at the endpoint with the bearer token attached, e.g. for a client config file:
{
"mcpServers": {
"my-links": {
"url": "https://<your-instance>/api/mcp",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}Tools
Read:
links.list,links.get,links.search,links.list_favoritescollections.list,collections.getinbox.get
Write:
links.create,links.update,links.delete,links.toggle_favorite,links.move_to_collection,links.add_to_collectioncollections.create,collections.update,collections.delete,collections.follow,collections.unfollow
links.search matches name, URL, and description: a small server-side substitute for the fuzzy matcher the webapp and extension each run client-side, which an MCP client has no access to.