PactFi MCP
Provides tools for interacting with the PactFi AMM DEX on the Algorand blockchain, enabling pool discovery, quote computation, and building unsigned swap/liquidity transactions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PactFi MCPswap 100 ALGO for USDC"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 paramsNo 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 |
| List PactFi pools with optional filters (symbol, verified, pool type) |
| Get detailed pool info by app ID (on-chain reserves + API metadata) |
| Compute swap quote with expected output, fee, price impact, and slippage |
| Build unsigned swap transaction group |
| Build unsigned add-liquidity transaction group |
| 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:
Deposit (payment or asset transfer) to pool escrow
Application call with
SWAP+ minimum received
add_liquidity_txn
Build a 3-transaction atomic group:
Deposit primary asset to pool escrow
Deposit secondary asset to pool escrow
Application call with
ADDLIQ+ minimum LP tokens
remove_liquidity_txn
Build a 2-transaction atomic group:
Deposit LP tokens to pool escrow
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 installUsage
node index.jsAdding 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, APRAlgorand 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 transactionsNFT Constant Product: Same AMM math as constant product — fully supported
Stableswap (
STABLE): Curve-style stable pools —get_quotereturns an approximate result (with warning);swap_txnrejects 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_quoteprovides an approximation with a warning.Pool discovery: The PactFi API is used for token metadata (symbols, decimals, prices). For specific pools, use the
appIdparameter directly.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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