oeis-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OEIS_DATA | No | Changes the location of the OEIS data directory. By default, data lives in data/. | data/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_termsA | Find sequences containing the given terms consecutively, like the OEIS search box. terms: comma-separated integers, e.g. "1, 2, 5, 14, 42, 132". At least 4 consecutive terms with some
|term| >= 10 are needed (shorter or tinier queries are too generic to index).
ext: search DATA plus b-file terms instead of DATA only.
sub: instead of the whole query, report every maximal common run of >= min_run terms between the query
and a sequence (useful when the query has a wrong term or a different start), longest first.
Each hit gives the A-number, name, keywords, offset, and where the match starts: |
| search_terms_batchA | Run many exact term searches at once (each as in search_terms with sub=False). queries: list of comma-separated term strings. Returns, per query, the total number of sequences
containing it and up to |
| search_textA | Find sequences whose text fields match a word, phrase or regex (case-insensitive). pattern: a plain word/phrase (fast literal scan) or a Python regex, e.g. "Catalan", "plane partitions", r"\bLyndon words?\b", "Sloane, \d{4}". fields: any of name, comments, formula, xrefs, links, author, programs, keywords; or ["all"]. Default: ["name"]. Hits are in A-number order. Each gives the name and keywords, and, when the match is outside the name, a snippet around the first match. |
| get_entryA | One OEIS entry from the snapshot. anum: "A000108" (also accepts "108", "a108"). fields: which text fields to include (name, comments, formula, xrefs, links, author, programs, keywords, or ["all"]); default name, keywords, formula, comments, xrefs, author. Terms and offset always come back. ext: return DATA extended with the real b-file terms (up to 256) instead of DATA. max_terms: cut the terms to this many. max_chars: cut each text field (links and programs can be long). For the exact internal-format record (%S/%N/%E... lines, incl. extensions), use get_raw_entry. |
| get_raw_entryA | The entry's record exactly as stored in oeisdata (internal format: %I %S %T %U %N %C %D %H %F %e %p %t %o %Y %K %O %A %E lines), including extension (%E) lines that get_entry does not carry. |
| get_summariesC | Short summaries of many entries at once: name, keywords, offset, number of terms and the first n_terms terms. Unknown A-numbers come back with an error. |
| get_bfileB | Lines of the entry's b-file from the local oeisdata clone (n, a(n) pairs), when it was fetched with git lfs. start/count select lines of (n, a(n)) data, comments skipped. |
| identify_transformA | Is this sequence a simple transform of a known OEIS sequence? A local "superseeker". Give either terms (comma-separated, with their offset, i.e. the n of the first term) or an anum (its own terms;
the entry itself is never reported). Every chain of up to |
| guess_recurrenceA | Guess a P-recursive (holonomic) recurrence sum_{i=0..r} p_i(n) a(n-i) = 0 with deg p_i <= d, and predict further terms from it. Give either terms (comma-separated, with the offset = n of the first term) or an anum (its terms; ext=True
uses DATA + b-file terms). (r, d) are tried in order of the number of unknowns (r+1)(d+1); the first whose
kernel is one-dimensional (mod a 61-bit prime, then exactly over Z) with at least |
| extend_from_formulasA | Can an entry be extended from its own stated relations? Parses the entry's "a(n) = <expr in n, a(), and A######()>" FORMULA lines and its "Euler / binomial / INVERT / ... transform of A######", "partial sums of A######" phrases (NAME, COMMENTS, FORMULA), checks each against the entry's known terms (all but at most the first 3 must agree, at least 6), and evaluates it past them on the other sequences' current terms (ext=True: DATA + b-file). Lines flagged as conjectural ("appears", "seems", "empirical", ...) are skipped. Each relation that gives new terms is returned with the new terms (from n = offset + n_terms on). The relation is the entry's own claim; check its source before using the terms. |
| index_infoA | Which snapshot is loaded and what is indexed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool has a clearly distinct role: retrieval (get_entry, get_raw_entry, get_summaries, get_bfile), search (search_terms, search_terms_batch, search_text), and analysis (identify_transform, guess_recurrence, extend_from_formulas). The retrieval variants are differentiated by output format and scope, and the search variants by query type and batching.
Names are consistently snake_case and predominantly verb_noun (get_entry, search_terms, identify_transform, guess_recurrence). The only minor deviation is index_info, which is a noun phrase rather than an action, but the overall pattern remains predictable.
Eleven tools is well-scoped for an OEIS server covering retrieval, search, and sequence analysis. Each tool appears to earn its place without redundant capabilities.
The surface covers core lookup, search, raw records, b-files, transform identification, recurrence guessing, and formula-based extension. Minor gaps exist, such as no dedicated keyword-browsing or snapshot-update tool, but these are workable via the existing search and index_info tools.