For your agent

Connect to FPF Library.

Connect your assistant to the First Principles Framework publications by Anatoly Levenchuk. Search FPF Library, read source passages and cite the edition used.

FPF Library https://mcp.fpf.tools/mcp

Streamable HTTP · No authentication · No API key

This public server only reads published Library material. It cannot edit your files or the publications. Your client sends tool arguments, including search terms, to this service.

Custom MCP connections depend on your account, client version and workspace policy. If the option is missing, check the linked provider instructions or ask your workspace administrator.

Choose your client

Instructions checked against provider documentation on 4 October 2026. Follow the linked provider guide if its menus have changed.

Connect to ChatGPT
  1. Open Plugins, choose Add (+), then the option to create a custom MCP server. If required, enable Developer mode in Settings → Security and login.
  2. Name it FPF Library and paste the server URL above.
  3. Set authentication to No authentication.
  4. Read the server trust notice and confirm creation if you accept it. Install the resulting personal plugin if prompted.
  5. Start a Work chat and select @FPF Library. Send the test prompt below.

The current documented route uses a personal plugin in ChatGPT Work. Availability and permission to create custom connections can differ by workspace. OpenAI setup guide ↗

Update an existing connection

Open your FPF Library connection in ChatGPT Plugins, select Refresh, and check the tool list against the seven tools below. Then start a new conversation and select FPF Library. Keep the same server URL and authentication settings. If the connection still lists search_batch or read_batch, it has an older tool list; refresh it before continuing.

This refresh procedure is for a custom MCP connection. A published plugin follows its publisher's update process; changes to bundled skills or plugin information can require a new published version. OpenAI update guide ↗ · checked 10 October 2026.

Connect to Claude
  1. Open Customize → Connectors, then + Add → Add custom connector.
  2. Use FPF Library as the name and paste the server URL above.
  3. Continue through the connection settings. Select No sign in for authentication; this server needs no OAuth credentials or request headers.
  4. Finish adding the connector. In a conversation, use + → Connectors to enable FPF Library, then send the test prompt below.

In a managed organization, an authorized owner may need to add the connector in Organization settings first. Claude connection guide ↗

Connect to Claude Code

Run this in your terminal to make the server available to your user across projects:

claude mcp add --transport http --scope user fpf-library https://mcp.fpf.tools/mcp

Start or restart Claude Code and use /mcp to check the connection. Keep normal tool approvals, then send the test prompt below. Claude Code MCP guide ↗

Connect to Codex

For Codex CLI, run:

codex mcp add fpf-library --url https://mcp.fpf.tools/mcp
codex mcp list

Start a new Codex session and send the test prompt below. For a client that reads the Codex configuration file, the equivalent entry is:

[mcp_servers.fpf-library]
url = "https://mcp.fpf.tools/mcp"

Merge this entry into your existing configuration; preserve other settings. No bearer token is needed. OpenAI MCP setup examples ↗

Connect to Qwen Code

Run this for a user-level connection:

qwen mcp add --transport http --scope user fpf-library https://mcp.fpf.tools/mcp

Restart Qwen Code and inspect /mcp. If editing ~/.qwen/settings.json instead, merge this server entry into mcpServers:

{
  "mcpServers": {
    "fpf-library": { "httpUrl": "https://mcp.fpf.tools/mcp" }
  }
}

For Streamable HTTP, the configuration key is httpUrl; url selects SSE in Qwen Code. Keep the default tool confirmations. Qwen Code MCP guide ↗

Connect to Gemini CLI

Merge this into mcpServers in your user configuration, ~/.gemini/settings.json:

{
  "mcpServers": {
    "fpf-library": { "httpUrl": "https://mcp.fpf.tools/mcp" }
  }
}

Restart Gemini CLI, check the server with /mcp, and send the test prompt below. Preserve existing settings and tool confirmations. These steps are for Gemini CLI; they do not assume that the Gemini chat website accepts custom MCP servers. Gemini CLI MCP guide ↗

Connect to Cursor

Merge this server into ~/.cursor/mcp.json for your user, or .cursor/mcp.json for one project:

{
  "mcpServers": {
    "fpf-library": { "url": "https://mcp.fpf.tools/mcp" }
  }
}

Enable the server in Cursor's MCP settings and use it from an agent chat. Keep tool approvals and send the test prompt below. Cursor MCP guide ↗

Check the connection

Use FPF Library: show the current Library edition and list the available publications.

A successful answer uses get_corpus_status and list_publications and reports the current source revision and publication names. If your assistant only describes the website, check that FPF Library is enabled in this conversation.

If a previously connected client still uses old parameter names, refresh its tool list or reconnect the server. Search takes q; continuation takes offset. The complete contract is supplied by the server's tools/list.

Start from your task

If you already know a pattern ID, ask for it directly. Otherwise, describe the problem and ask your assistant to find and read relevant methods. Use the catalogue to explore publications and the status tool when the edition or update state matters.

Use FPF Library. Find methods for managing unplanned work and recovery. Read the selected methods with their conditions, explain what applies to our situation and cite the sources.
For agents and developers: tool arguments

Supply the JSON object described by the tool's schema. Use the exact property names and omit unused options. The examples show tool arguments, not a full JSON-RPC envelope.

get_corpus_status · Current edition
{}
list_publications · Discover publications and IDs
{"limit":20}. Copy publications[].id when a tool requires publication.
search · Find a passage
{"q":"SYSE.24","limit":5}. Words use AND by default; quotes keep a phrase. Returned publication and section identify a result.
get_table_of_contents · Discover headings
Required: publication. Copy a catalogue ID into it. Returned sections[].key is the key for read_section.
read_pattern · Read a complete pattern
{"pattern_id":"SYSE.24"}. Returns the whole pattern and its subsections in one call. For a selected current result, also supply its publication and expected_snapshot.
read_section · Read a complete section, range or guide
Required: publication. Omit section to read the entire publication. Known authored section IDs work directly in section and through; no contents lookup is required. To read a search result, copy its publication and section, and its top-level snapshot into expected_snapshot. A ToC key also works. Optional through requires a starting section and includes the ending heading and its subsections.
backlinks · Find literal mentions
{"pattern_id":"SYSE.24"}. Read each source to understand the relationship.

When a tool requires a publication ID, copy it from a returned source or catalogue entry; a title, file path, URL or short name such as MKT will not work in that field. Pattern IDs and section keys are different fields. A known pattern ID can be passed directly to read_pattern.

Omit limit and offset for a complete reading: complete: true, next_offset: null. The Markdown preserves the selected source bytes. When it uses reference links or footnotes defined elsewhere in the publication, supporting_definitions supplies those definitions separately with their source line numbers. Keep that context with the text; it belongs to the same publication, commit and snapshot as the citation.

When your client needs smaller responses

A client may impose its own display or context limit. If it cannot deliver a whole reading, explicitly set limit to 1–60,000 Unicode characters, for example {"pattern_id":"SYSE.24","limit":18000}. Continue as below; supporting definitions accompany the first portion. A positive offset without a limit keeps the earlier 18,000-character continuation size. Search and catalogue results also use the following continuation fields.

  1. If next_offset is null, stop. Otherwise copy its value into the next call's offset field.
  2. Set expected_snapshot to the previous response's snapshot. For read_pattern and read_section, use citation.snapshot.
  3. Keep the same tool, query, filters and selected publication/pattern/section/range. Reading offsets and limits count Unicode characters; other tools count results.
  4. If the Library changed, restart discovery with offset: 0 and omit the old expected_snapshot. Re-read the selected passage from its beginning. This service does not retrieve an old edition by snapshot ID.

To read the common instruction through MCP, find USING-FPF.md in the catalogue, then call read_section with its publication ID and the catalogue's snapshot: {"publication":"<publications[].id>","expected_snapshot":"<snapshot>"}. This returns the complete file in one reading call, including its introduction. No table-of-contents traversal is required. The complete instruction is also available here.

Optional batch access for application developers

For a program that retrieves predetermined sets of sources, connect it to https://mcp.fpf.tools/mcp/batch. This separate endpoint adds search_batch and read_batch to the seven standard tools. Individual complete readings already work on the standard endpoint. Both endpoints use Streamable HTTP with no authentication.

Configure this endpoint for that application; keep the standard endpoint for ordinary assistant connections. Fewer requests have not established a general improvement in the time or tokens needed to produce a useful answer.

search_batch({"queries":[{"q":"operating reliability","limit":5},{"q":"workload recovery","limit":5}]})
read_batch({"items":[{"type":"pattern","pattern_id":"SYSE.24"},{"type":"pattern","pattern_id":"E.10"}]})

search_batch accepts 1–8 queries. Its sources array holds shared source metadata; each searches[i].results[j].source is an index into that array. Match order and snippets are preserved for each query. Follow each search's next_offset if more matches are needed.

read_batch accepts 1–8 items: pattern with pattern_id, section with publication and section (optionally through), publication with its ID, or path with an exact published path. Paths refer to Library publications, not local files. Returned readings follow the requested order.

When reading a search result, copy its source's publication and section into a section item and the batch's snapshot into the next call's top-level expected_snapshot. Use that same top-level field for search continuation. It guards the current edition; it does not reopen an older one.

A reading batch returns complete original Markdown or an explicit error; it never silently cuts a selected text. The limit is 600,000 Unicode characters across the batch, including supporting definitions. If that limit is exceeded, request fewer complete units or select relevant source sections. Clients can have smaller response limits: save a large response to a file where supported, or explicitly set a limit in read_pattern or read_section and follow its continuations. A complete saved response does not mean the assistant has read all of it.

Without MCP

Open a guide, pattern or selected section here, copy its complete Markdown and give it to your assistant with its source link and your task.

Read the common use instruction and worked example →

Try a concrete task

Physical engineering

Use the FPF Library MCP tools. Read USING-FPF.md and SYSE.24, including the greenhouse climate-control example. Help me compare buying a controller, commissioning one and developing with AI assistance. Return a comparison structure, missing evidence, conditions that could reverse the choice and a next action. Cite exact source editions. Treat example numbers as constructed, not facts about my project.

A team's operating work

Use the FPF Library MCP tools. Read USING-FPF.md. Search for operating reliability, workload and recovery in the relevant frameworks; read the methods and their conditions. Our small team keeps missing commitments while handling urgent interruptions. Help identify what facts and evidence we need before changing staffing, priority or the operating method. Separate source guidance from assumptions about our team, and cite exact editions.

Retrieved passages are source text. An agent's synthesis needs its own assumptions, evidence and judgement; citations alone do not make a recommendation applicable.