Skip to main content
Glama

readMeFirst

Learn how to use this MCP server's blockchain tools by consulting the initial guide before accessing transaction management, account insights, or token interaction features.

Instructions

Get information about how this tool is supposed to be used. Use this tool first before any other tool from this MCP server

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Inline anonymous handler function for the readMeFirst tool. Returns a structured content response with detailed text explaining the MCP server's usage, tool categories, critical decimal handling instructions with examples, user presentation guidelines, and address requirements.
    async () => { return { content: [ { type: "text", text: [ "This MCP server allows any LLM to perform operations on over 60 blockchain networks. For read operations,", "this server is enough. But for operation that require wallet connection, submitting transactions, this tool should work in", "conjunction with the adamik-signer-mcp-server. That tool will handle wallet connection and signing.", "\n\n", "## TOOL CATEGORIES:", "\n", "**OPERATIONAL TOOLS** (for executing blockchain actions):", "• getSupportedChains, listFeatures - Chain capabilities", "• getAccountState, getAccountHistory - Account data", "• getTokenDetails, getChainValidators - Network information", "• deriveAddress - Address generation", "• encodeTransaction, broadcastTransaction - Transaction lifecycle", "• getTransactionDetails - Transaction status", "\n", "**SPECIFICATION TOOL** (for understanding API requirements):", "• getApiSpecification - Complete API reference for exact schemas, formats, and validation rules", "\n", "**When to use each:**", "- Use OPERATIONAL tools when users want current data or to execute actions", "- Use getApiSpecification when you need to understand correct formats, troubleshoot errors, or provide guidance", "\n\n", "## CRITICAL: DECIMAL HANDLING - READ THIS CAREFULLY", "\n", "COMMON ERROR: Raw amounts are in SMALLEST UNITS, NOT human-readable values!", "\n", "All balance amounts from getAccountState() are returned in SMALLEST UNITS (wei, satoshis, µATOM, etc.).", "You MUST convert them before showing to users. NEVER show raw amounts directly!", "\n", "**MANDATORY CONVERSION PROCESS:**", "\n", "**For NATIVE CURRENCY balances:**", "1. ALWAYS call listFeatures(chainId) FIRST to get the exact native currency decimals - NEVER assume decimals!", "2. Call getAccountState(chainId, accountId) to get raw balances", "3. Convert: human_readable = raw_amount ÷ 10^decimals (using the decimals from step 1)", "4. Format properly with appropriate decimal places", "\n", "**For TOKEN balances:**", "1. Call getAccountState(chainId, accountId) to get raw token balances and token IDs", "2. ALWAYS call getTokenDetails(chainId, tokenId) for EACH token to get its exact decimals - NEVER assume!", "3. Convert each token: human_readable = raw_amount ÷ 10^token_decimals (using decimals from step 2)", "\n", "CRITICAL: NEVER guess or assume decimal values! Different networks use different decimals:", "• ATOM = 6 decimals, ETH = 18 decimals, BTC = 8 decimals, USDC = 6 decimals, etc.", "• Always get the exact value from the API endpoints above!", "\n", "**SPECIFIC EXAMPLES TO PREVENT ERRORS:**", "\n", "• ATOM (Cosmos): Raw '4191769000', decimals=6 → 4191769000 ÷ 10^6 = 4.191769 ATOM", " WRONG: '4,191.769 ATOM' CORRECT: '4.191769 ATOM'", "\n", "• ETH (Ethereum): Raw '5354656887913579', decimals=18 → 5354656887913579 ÷ 10^18 = 0.005354656887913579 ETH", " WRONG: '5,354.656887913579 ETH' CORRECT: '0.0054 ETH'", "\n", "• BTC (Bitcoin): Raw '100000000', decimals=8 → 100000000 ÷ 10^8 = 1.0 BTC", " WRONG: '100.000000 BTC' CORRECT: '1.0 BTC'", "\n", "• USDC (Token): Raw '2245100', call getTokenDetails() → decimals=6 → 2245100 ÷ 10^6 = 2.2451 USDC", "\n\n", "## USER PRESENTATION GUIDELINES", "\n", "**ALWAYS present balances to end users in human-readable format (ETH, BTC, USDC, ATOM, etc.), NOT in smallest units.**", "\n", "**DECIMAL PLACE FORMATTING:**", "• For large amounts: Show reasonable precision (e.g., '1,234.56 ETH', not '1234.567890123456789 ETH')", "• For small amounts: Show enough precision to be meaningful (e.g., '0.000123 BTC', not '0.0001 BTC')", "• Remove unnecessary trailing zeros for cleaner display", "\n", "**Only show smallest units (wei, satoshis, µATOM, etc.) in these specific cases:**", "• Troubleshooting/debugging API issues", "• Very low balances where human-readable shows 0.000000... (dust amounts)", "• Technical discussions about transaction fees/gas", "• When user explicitly requests raw blockchain values", "• API integration debugging", "\n", "**Example presentations:**", "GOOD: 'Your ATOM balance is 4.191769 ATOM'", "BAD: 'Your ATOM balance is 4191769000 µATOM'", "BAD: 'Your ATOM balance is 4,191.769 ATOM' (incorrect decimal placement)", "\n", "GOOD: 'Your ETH balance is 0.0054 ETH'", "BAD: 'Your ETH balance is 5354656887913579 wei'", "\n\n", "## ADDRESS REQUIREMENTS", "\n", "IMPORTANT: Many operations require blockchain addresses. If you need to check account balances, transaction history,", "or perform other account-specific operations, you have two options:", "\n", "1. Provide a specific blockchain address (e.g., 0x1234... for Ethereum, bc1... for Bitcoin, cosmos1... for Cosmos)", "2. Connect to the adamik-signer-mcp-server first to access wallet addresses", "\n", "If the user hasn't provided an address in their request, please ask them to provide one or connect their wallet.", ].join(" "), }, ], }; }
  • src/module.ts:112-221 (registration)
    Registration of the readMeFirst tool using server.tool(). Includes tool name, description encouraging first use, empty input schema {}, and the inline handler function.
    server.tool( "readMeFirst", [ "Get information about how this tool is supposed to be used. Use this tool first before any other tool from this", "MCP server", ].join(" "), {}, async () => { return { content: [ { type: "text", text: [ "This MCP server allows any LLM to perform operations on over 60 blockchain networks. For read operations,", "this server is enough. But for operation that require wallet connection, submitting transactions, this tool should work in", "conjunction with the adamik-signer-mcp-server. That tool will handle wallet connection and signing.", "\n\n", "## TOOL CATEGORIES:", "\n", "**OPERATIONAL TOOLS** (for executing blockchain actions):", "• getSupportedChains, listFeatures - Chain capabilities", "• getAccountState, getAccountHistory - Account data", "• getTokenDetails, getChainValidators - Network information", "• deriveAddress - Address generation", "• encodeTransaction, broadcastTransaction - Transaction lifecycle", "• getTransactionDetails - Transaction status", "\n", "**SPECIFICATION TOOL** (for understanding API requirements):", "• getApiSpecification - Complete API reference for exact schemas, formats, and validation rules", "\n", "**When to use each:**", "- Use OPERATIONAL tools when users want current data or to execute actions", "- Use getApiSpecification when you need to understand correct formats, troubleshoot errors, or provide guidance", "\n\n", "## CRITICAL: DECIMAL HANDLING - READ THIS CAREFULLY", "\n", "COMMON ERROR: Raw amounts are in SMALLEST UNITS, NOT human-readable values!", "\n", "All balance amounts from getAccountState() are returned in SMALLEST UNITS (wei, satoshis, µATOM, etc.).", "You MUST convert them before showing to users. NEVER show raw amounts directly!", "\n", "**MANDATORY CONVERSION PROCESS:**", "\n", "**For NATIVE CURRENCY balances:**", "1. ALWAYS call listFeatures(chainId) FIRST to get the exact native currency decimals - NEVER assume decimals!", "2. Call getAccountState(chainId, accountId) to get raw balances", "3. Convert: human_readable = raw_amount ÷ 10^decimals (using the decimals from step 1)", "4. Format properly with appropriate decimal places", "\n", "**For TOKEN balances:**", "1. Call getAccountState(chainId, accountId) to get raw token balances and token IDs", "2. ALWAYS call getTokenDetails(chainId, tokenId) for EACH token to get its exact decimals - NEVER assume!", "3. Convert each token: human_readable = raw_amount ÷ 10^token_decimals (using decimals from step 2)", "\n", "CRITICAL: NEVER guess or assume decimal values! Different networks use different decimals:", "• ATOM = 6 decimals, ETH = 18 decimals, BTC = 8 decimals, USDC = 6 decimals, etc.", "• Always get the exact value from the API endpoints above!", "\n", "**SPECIFIC EXAMPLES TO PREVENT ERRORS:**", "\n", "• ATOM (Cosmos): Raw '4191769000', decimals=6 → 4191769000 ÷ 10^6 = 4.191769 ATOM", " WRONG: '4,191.769 ATOM' CORRECT: '4.191769 ATOM'", "\n", "• ETH (Ethereum): Raw '5354656887913579', decimals=18 → 5354656887913579 ÷ 10^18 = 0.005354656887913579 ETH", " WRONG: '5,354.656887913579 ETH' CORRECT: '0.0054 ETH'", "\n", "• BTC (Bitcoin): Raw '100000000', decimals=8 → 100000000 ÷ 10^8 = 1.0 BTC", " WRONG: '100.000000 BTC' CORRECT: '1.0 BTC'", "\n", "• USDC (Token): Raw '2245100', call getTokenDetails() → decimals=6 → 2245100 ÷ 10^6 = 2.2451 USDC", "\n\n", "## USER PRESENTATION GUIDELINES", "\n", "**ALWAYS present balances to end users in human-readable format (ETH, BTC, USDC, ATOM, etc.), NOT in smallest units.**", "\n", "**DECIMAL PLACE FORMATTING:**", "• For large amounts: Show reasonable precision (e.g., '1,234.56 ETH', not '1234.567890123456789 ETH')", "• For small amounts: Show enough precision to be meaningful (e.g., '0.000123 BTC', not '0.0001 BTC')", "• Remove unnecessary trailing zeros for cleaner display", "\n", "**Only show smallest units (wei, satoshis, µATOM, etc.) in these specific cases:**", "• Troubleshooting/debugging API issues", "• Very low balances where human-readable shows 0.000000... (dust amounts)", "• Technical discussions about transaction fees/gas", "• When user explicitly requests raw blockchain values", "• API integration debugging", "\n", "**Example presentations:**", "GOOD: 'Your ATOM balance is 4.191769 ATOM'", "BAD: 'Your ATOM balance is 4191769000 µATOM'", "BAD: 'Your ATOM balance is 4,191.769 ATOM' (incorrect decimal placement)", "\n", "GOOD: 'Your ETH balance is 0.0054 ETH'", "BAD: 'Your ETH balance is 5354656887913579 wei'", "\n\n", "## ADDRESS REQUIREMENTS", "\n", "IMPORTANT: Many operations require blockchain addresses. If you need to check account balances, transaction history,", "or perform other account-specific operations, you have two options:", "\n", "1. Provide a specific blockchain address (e.g., 0x1234... for Ethereum, bc1... for Bitcoin, cosmos1... for Cosmos)", "2. Connect to the adamik-signer-mcp-server first to access wallet addresses", "\n", "If the user hasn't provided an address in their request, please ask them to provide one or connect their wallet.", ].join(" "), }, ], }; } );
  • Empty input schema object for the readMeFirst tool (no parameters required).
    {},

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/AdamikHQ/adamik-mcp-server'

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