mcp-parigp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| eval_expressionB | Evaluate a PARI/GP expression string. |
| get_pari_versionA | Get the PARI/GP version string. Returns: String describing the PARI version. Example: >>> get_pari_version() 'GP/PARI CALCULATOR Version 2.15...' |
| set_real_precisionB | Set the PARI default real precision in decimal digits. |
| get_real_precisionA | Get the current PARI default real precision in decimal digits. Returns: Current precision in decimal digits. Example: >>> get_real_precision() 15 |
| set_real_precision_bitsC | Set the PARI default real precision in bits. |
| get_real_precision_bitsA | Get the current PARI default real precision in bits. Returns: Current precision in bits. Example: >>> get_real_precision_bits() 53 |
| allocatememC | Change the PARI stack size. |
| stacksizeA | Get the current PARI stack size in bytes. Returns: Current stack size. Example: >>> stacksize() 8000000 |
| stacksizemaxA | Get the maximum PARI stack size in bytes. Returns: Maximum stack size. Example: >>> stacksizemax() 536870912 |
| setrandA | Set PARI's random number seed. |
| getrandA | Get PARI's current random number seed. Returns: The current random seed. Example: >>> getrand() [1, 2, 3, ...] |
| primesC | Return prime numbers. |
| primeA | Return the nth prime (1-indexed). |
| factorB | Factor an integer. |
| isprimeA | Test if an integer is prime. |
| gcdB | Compute the greatest common divisor of two integers. |
| lcmB | Compute the least common multiple of two integers. |
| bezoutA | Compute the Bezout identity: gcd(a,b) = au + bv. |
| phiB | Compute Euler's totient function phi(n). |
| sigmaC | Compute the sum of k-th powers of divisors of n. |
| moebiusB | Compute the Möbius function mu(n). |
| jacobiB | Compute the Jacobi symbol (a/n). |
| legendreB | Compute the Legendre symbol (a/p). |
| znorderB | Compute the multiplicative order of x modulo n. |
| znstarB | Compute the structure of (Z/nZ)*. |
| factorialA | Compute the factorial n!. |
| binomialB | Compute the binomial coefficient C(n,k). |
| fibonacciB | Compute the nth Fibonacci number. |
| lucasB | Compute the nth Lucas number. |
| polcycloC | Compute the nth cyclotomic polynomial. |
| polchebyshevB | Compute the nth Chebyshev polynomial of the first kind. |
| pollegendreC | Compute the nth Legendre polynomial. |
| polhermiteA | Compute the nth Hermite polynomial (probabilists' version). |
| polrootsB | Compute the complex roots of a polynomial. |
| polrootsmodB | Compute the roots of a polynomial modulo p. |
| polrootspadicB | Compute the p-adic roots of a polynomial. |
| factorpadicC | Factor a polynomial over the p-adic numbers. |
| derivB | Compute the derivative of a polynomial. |
| integB | Compute the integral of a polynomial. |
| resultantC | Compute the resultant of two polynomials. |
| discC | Compute the discriminant of a polynomial. |
| normB | Compute the norm of a polynomial/algebraic number. |
| traceB | Compute the trace of a polynomial/algebraic number. |
| substB | Substitute a variable in a polynomial. |
| ModC | Create a modular number or polynomial. |
| liftB | Lift a modular object (remove Mod wrapper). |
| centerliftC | Lift a modular object with centered representatives. |
| nfinitC | Initialize a number field defined by a polynomial. |
| bnfinitC | Initialize a number field with Buchmann's algorithm. |
| bnrinitC | Initialize a ray number field (class field). |
| idealaddA | Add two ideals in a number field. |
| idealmulB | Multiply two ideals in a number field. |
| idealpowC | Compute a power of an ideal. |
| idealfactorA | Factor an ideal in a number field. |
| ellinitC | Initialize an elliptic curve. |
| elladdC | Add two points on an elliptic curve. |
| ellmulC | Multiply a point on an elliptic curve by an integer. |
| ellorderC | Compute the order of a point on an elliptic curve. |
| elllogB | Compute the discrete logarithm of a point on an elliptic curve. |
| ellapB | Compute the trace of Frobenius for an elliptic curve at prime p. |
| elltorsB | Compute the torsion subgroup of an elliptic curve. |
| ellglobalredB | Compute the global reduction type of an elliptic curve. |
| elllocalredB | Compute the local reduction type at prime p. |
| ellheightA | Compute the canonical height of a point on an elliptic curve. |
| elljB | Compute the j-invariant of an elliptic curve. |
| elletaA | Compute the eta-quotients for an elliptic curve. |
| ellwpC | Compute the Weierstrass p-function. |
| ellzetaC | Compute the Weierstrass zeta function. |
| matidA | Create an n x n identity matrix. |
| matzeroD | Create a zero matrix. |
| matdetB | Compute the determinant of a matrix. |
| matinvC | Compute the inverse of a matrix. |
| matrankB | Compute the rank of a matrix. |
| matkerC | Compute the kernel of a matrix. |
| matimageB | Compute the image of a matrix. |
| mateigenC | Compute the eigenvalues of a matrix. |
| matcharpolyB | Compute the characteristic polynomial of a matrix. |
| hessC | Compute the Hessenberg form of a matrix. |
| ListC | Create an empty list or convert to a list. |
| VecC | Convert to a row vector. |
| ColD | Convert to a column vector. |
| MatC | Convert to a matrix. |
| SetC | Convert to a set. |
| PolC | Convert to a polynomial. |
| PolrevC | Convert to a polynomial (reverse order). |
| SerD | Convert to a power series. |
| piA | Get the value of pi. |
| eulerB | Get Euler's constant. |
| CatalanB | Get Catalan's constant. |
| complexB | Create a complex number. |
| IA | Get the imaginary unit. Returns: The imaginary unit I = sqrt(-1). Example: >>> I() I |
| oneA | Get the integer 1. Returns: Integer 1. Example: >>> one() 1 |
| zeroA | Get the integer 0. Returns: Integer 0. Example: >>> zero() 0 |
| absB | Compute absolute value. |
| sqrtC | Compute square root. |
| expC | Compute exponential. |
| logB | Compute natural logarithm. |
| sinC | Compute sine. |
| cosC | Compute cosine. |
| tanC | Compute tangent. |
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 143 tools
Each tool corresponds to a distinct mathematical operation or concept, with clear names and descriptions that avoid confusion. Only a few generic tools like 'abs' and 'sqrt' are unambiguous, and most have specialized domains (e.g., elliptic curve functions, number field functions).
All tool names are lowercase, single words (or concatenated without underscores), following a consistent pattern of using the mathematical symbol or abbreviation. No mixing of cases or styles, making it predictable.
With 143 tools, the server is excessively large for typical use, overwhelming agents with choices. While the full PARI/GP library warrants many functions, this count far exceeds the recommended 3-15 range for a coherent toolset.
The tool set covers a broad range of mathematical domains including arithmetic, number theory, elliptic curves, linear algebra, and modular forms. Minor gaps exist (e.g., Galois group functions), but the overall coverage is very comprehensive.