Skip to main content
Glama
NautilusOSS

PactFi MCP

by NautilusOSS

pactfi-mcp

MCP (Model Context Protocol) server for the PactFi AMM DEX on Algorand. Part of the UluOS agent ecosystem.

Architecture

┌──────────────┐     ┌──────────────┐     ┌──────────────────┐
│  PactFi MCP  │────▶│ UluWalletMCP │────▶│ UluBroadcastMCP  │
│  (this repo) │     │  (signing)   │     │  (submit to net) │
└──────┬───────┘     └──────────────┘     └──────────────────┘
       │
       ├── PactFi REST API (api.pact.fi) ── pool discovery & metadata
       └── Algorand algod (algonode.cloud) ── on-chain state & tx params

No PactFi SDK dependency — pools are queried via the PactFi REST API, quotes are computed locally using constant-product AMM math, and transactions are built directly with algosdk.

Related MCP server: Tapp Exchange MCP Server

Tools

Tool

Description

get_pools

List PactFi pools with optional filters (symbol, verified, pool type)

get_pool

Get detailed pool info by app ID (on-chain reserves + API metadata)

get_quote

Compute swap quote with expected output, fee, price impact, and slippage

swap_txn

Build unsigned swap transaction group

add_liquidity_txn

Build unsigned add-liquidity transaction group

remove_liquidity_txn

Build unsigned remove-liquidity transaction group

Tool Details

get_pools

List PactFi liquidity pools. Supports filtering by token symbol, verification status, pool type (CONST or STABLE), and result limit.

get_pool

Fetch on-chain pool state (reserves A/B, LP supply, fee configuration) merged with API metadata (token names, prices, TVL, APR).

get_quote

Simulate a swap without building transactions. Provide fromToken/toToken symbols and an amount. Optionally specify poolAppId to target a specific pool, or let it auto-discover the highest-TVL pool for the pair.

swap_txn

Build a 2-transaction atomic group:

  1. Deposit (payment or asset transfer) to pool escrow

  2. Application call with SWAP + minimum received

add_liquidity_txn

Build a 3-transaction atomic group:

  1. Deposit primary asset to pool escrow

  2. Deposit secondary asset to pool escrow

  3. Application call with ADDLIQ + minimum LP tokens

remove_liquidity_txn

Build a 2-transaction atomic group:

  1. Deposit LP tokens to pool escrow

  2. Application call with REMLIQ + minimum primary + minimum secondary

Agent Flow Example

Agent: get_quote(fromToken="ALGO", toToken="USDC", amount="100")
  → { expectedOutput: "8.52", minimumReceived: "8.47", poolAppId: 1073557308, ... }

Agent: swap_txn(fromToken="ALGO", toToken="USDC", amount="100", sender="ABC...")
  → { transactions: ["base64...", "base64..."], details: { ... } }

Agent: UluWalletMCP.sign_transactions(signerId="my-signer", transactions=["base64..."])
  → { signedTransactions: ["base64..."] }

Agent: UluBroadcastMCP.broadcast_transactions(network="algorand-mainnet", txns=["base64..."])
  → { txIds: ["TXID..."] }

Setup

npm install

Usage

node index.js

Adding to a Client

{
  "mcpServers": {
    "pactfi-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/pactfi-mcp/index.js"]
    }
  }
}

Data Sources

  • PactFi REST API (api.pact.fi): pool listing, token metadata, TVL, volume, APR

  • Algorand algod (mainnet-api.algonode.cloud): on-chain pool state, transaction parameters

Supported Pool Types

  • Constant Product (CONST): Standard x·y=k AMM pools — fully supported for quotes and transactions

  • NFT Constant Product: Same AMM math as constant product — fully supported

  • Stableswap (STABLE): Curve-style stable pools — get_quote returns an approximate result (with warning); swap_txn rejects stableswap pools since the constant-product math cannot produce correct minimum-received values for on-chain execution

Known Limitations

  • Stableswap transactions: Building swap/liquidity transactions for stableswap pools is not supported. The on-chain contract uses the StableSwap (Curve) invariant which requires different math than constant-product. get_quote provides an approximation with a warning.

  • Pool discovery: The PactFi API is used for token metadata (symbols, decimals, prices). For specific pools, use the appId parameter directly.

License

MIT

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables interaction with the Algorand blockchain network including account management, payments, asset creation and transfers, along with general utility tools. Provides secure mnemonic encryption and supports both testnet and mainnet environments.
    14
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI agents to interact with Tapp Exchange, a decentralized exchange on Aptos blockchain. Supports pool management, trading operations across AMM/CLMM/Stable pools, liquidity provision, and position tracking through natural language.
    21
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the Algorand blockchain through 25+ specialized tools for account management, payments, asset creation, NFT operations, and network monitoring. Supports both mainnet and testnet with instant finality and low fees.
    59
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Tinyman AMM protocol on Algorand blockchain, supporting pool management, token swaps, liquidity operations, and analytics for both v1.1 and v2 protocols.
    18
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Pay any Algorand x402 invoice with any asset, plus DEX swap quotes and unsigned builds.

  • Non-custodial DeFi for AI agents: swaps, concentrated liquidity (V3/V4) zaps + ranges, 5 EVM chains

  • Cross-network DeFi API data, AMM analytics, and SDK docs for 17+ networks.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NautilusOSS/PactFiMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server