@pipeworx/algorithm-finder
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/algorithm-finder’s. Install: one-click buttons
Connect to just the @pipeworx/algorithm-finder pack
https://gateway.pipeworx.io/algorithm-finder/mcp — only @pipeworx/algorithm-finder’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
Which algorithm, data structure or technique fits a computational problem: the standard textbook answer with its preconditions and complexity bounds, cited to the page they were established from, and the recent research answer with dates.
Tools
algorithm_find(problem, want?, since_year?, limit?)— describe the problem in words and get the matching textbook methods (what each solves, preconditions, bounds with their kind — worst-case / expected / amortized — when to use and when not, alternatives, citations), the open questions whose answers decide between them, Skiena Algorithm Repository problem pages, and recent papers from Hugging Face Papers and arXiv.wantiscommon,novelorboth(default).algorithm_lookup(name)— one named method in full: the curated facts, the NIST DADS dictionary entry (definition, aliases, relations, complexity note, implementation links), the cp-algorithms article, related problem pages, and which languages Rosetta Code has solutions in. Short names and aliases work (Dijkstra,KMP,union-find).algorithm_implementations(name, language?)— the languages Rosetta Code has solutions in and, withlanguage, that solution’s source code (CC BY-SA 4.0, labellededucational), plus reference links from the DADS entry, the cp-algorithms article and the Algorithm Repository’s implementation links.
Every response carries data_as_of (the newest DADS entry-modified date in
the index), a license block for the leading source, and a source URL per
item. A miss is found: false with a reason (no_match,
language_not_present) and a hint naming what to try; a transport or parse
failure throws rather than returning an empty list.
Auth
Keyless.
Data sources
- https://xlinux.nist.gov/dads/ — NIST Dictionary of Algorithms and Data
Structures (Paul E. Black, ed.). ~1,120 entries. A work of the United States
Government, not subject to copyright (17 U.S.C. § 105). The whole entry set
is in the generated index (
src/af-index-data.ts, rebuilt byscripts/bake-algorithm-finder-index.mjs). data/methods.json— a curated table written for this pack: for each method, what it solves, preconditions, bounds (with kind and conditions), when to use and when not, alternatives, phrasings of the problem in everyday words, and citations. Facts were established from Cormen, Leiserson, Rivest & Stein, Introduction to Algorithms 4th ed. (CLRS4); Erciyes, Guide to Graph Algorithms 2nd ed. (Erciyes2026); Bhargava, Grokking Algorithms (Grokking2024); Christian & Griffiths, Algorithms to Live By (ATLB), and are stated in our own words. No book text is served. The bake script refuses any non-qualitative bound that lacks a page citation.- https://www.algorist.com/ — Steven Skiena’s Stony Brook Algorithm Repository. Only the 75 problem names, categories and URLs are in the index; a problem page is fetched per call for its input/problem statement and implementation links, and attributed.
- https://cp-algorithms.com/ — titles, locations and tags from its own search index; an article’s opening paragraphs are fetched per call. CC BY-SA 4.0, attributed in the response.
- https://rosettacode.org/w/api.php — MediaWiki API. A task page is resolved
with
list=search; its per-language solutions are level-2 sections (action=parse&prop=sections), and one section’s wikitext yields the code inside<syntaxhighlight lang="…">. CC BY-SA 4.0, attributed. Note:list=categorymemberson a task name returns an empty list — solutions are sections of the task page, not category members. - Hugging Face Papers via
@pipeworx/paperswithcodeand arXiv via@pipeworx/arxiv(query restricted to cs.DS / cs.CC / cs.DM / cs.LG / cs.IR / cs.NE, newest first). Papers with Code’s own API is gone (it redirects to Hugging Face), which is why the ML leg goes through that pack.
Traps worth knowing
- DADS lists a term under every alias in
terms.html(1,309 names for ~1,120 entries); aliases come from that index, not only from “Also known as”. - A DADS complexity lives in the free-text Note, not a field; the bake
extracts
O(…)/Θ(…)expressions intobounds_mentionedbut they carry no variant or conditions — the curated table is where that precision lives. - The curated-table bound for a method names its variant (binary heap vs Fibonacci heap; expected vs worst case). Do not collapse them.
- Rosetta language section names are the wiki’s spelling (
C++,C#,Icon and Unicon); thelanguageargument matches case-insensitively on the whole name or a prefix.
Tools
- algorithm_find — Which algorithm, data structure or technique fits a computational problem. Describe the problem in words (“shortest route between two points with positive costs”, “assign workers to jobs minimising co
- algorithm_lookup — One named algorithm, data structure or technique in full: what it solves, preconditions, complexity bounds with their kind (worst-case / expected / amortized) and textbook citations, when to use it an
- algorithm_implementations — Implementations of a named algorithm: the languages Rosetta Code has solutions in and, with language set, the source code of that solution (CC BY-SA 4.0, labelled educational), plus reference implemen
Tools
algorithm_find— Which algorithm, data structure or technique fits a computational problem. Describe the problem in words ( shortest route between two points with positive costs , assign workers to jobs minimising cosalgorithm_implementations— Implementations of a named algorithm: the languages Rosetta Code has solutions in and, with language set, the source code of that solution (CC BY-SA 4.0, labelled educational), plus reference implemenalgorithm_lookup— One named algorithm, data structure or technique in full: what it solves, preconditions, complexity bounds with their kind (worst-case / expected / amortized) and textbook citations, when to use it an