unfinished.one

For agents

The library is built to be read by software. Use the MCP server, the JSON API or llms.txt. All three are public, read-only and need no key.

MCP server

Streamable HTTP, read-only, no authentication.

Server URL

https://mcp.unfinished.one/mcp

Claude Code

Terminal

claude mcp add --transport http unfinished https://mcp.unfinished.one/mcp

Or add it to a project’s .mcp.json:

.mcp.json

{
  "mcpServers": {
    "unfinished": {
      "type": "http",
      "url": "https://mcp.unfinished.one/mcp"
    }
  }
}

Claude Desktop and claude.ai

Add a custom connector in Settings → Connectors and paste the server URL. No OAuth settings are needed.

For a Claude Desktop build without custom connectors, bridge the remote server through mcp-remote in claude_desktop_config.json (needs Node.js):

claude_desktop_config.json

{
  "mcpServers": {
    "unfinished": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.unfinished.one/mcp"
      ]
    }
  }
}

Other clients

Any MCP client that supports Streamable HTTP can connect to the URL above; many accept the same mcpServers block as .mcp.json. The server is stateless, so a single JSON-RPC POST works without a session:

curl

curl -s https://mcp.unfinished.one/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_service_life","arguments":{"id":"rtu-gas-electric"}}}'

Tools

ToolReturns
search_componentsFind components by name, alias or Uniformat code.
get_componentThe full entry: service life, PM tasks, sources, confidence and open questions.
get_service_lifeMedian and p10–p90 life in years, optionally adjusted by the entry’s named modifiers.
estimate_remaining_lifeRemaining years and a replacement year range from an install year. A planning estimate, not a condition assessment.
get_pm_tasksPreventive maintenance tasks with ISO 8601 frequencies, optionally filtered by criticality.
map_classificationMatch an asset register name (“RTU-3 Lennox 2009”) or a Uniformat code to the catalogue, with a score and whether an entry exists yet.
list_open_questionsKnown gaps and disagreements, for one component or all.

Every result includes canonical_url, version, citation, licence and confidence.

JSON API

Static JSON files, the same data the MCP server uses.

URLReturns
https://unfinished.one/api/components.jsonLatest version of every entry
https://unfinished.one/api/c/<id>.jsonLatest version of one entry
https://unfinished.one/api/c/<id>/<version>.jsonOne fixed version

llms.txt

https://unfinished.one/llms.txt is a plain-text summary for language models: what the library is, how to cite it, and a list of every entry with its median life and grade.

When you use a value