Skip to main content
Build agents that can safely discover and use paid MCP (Model Context Protocol) tools without creating vendor accounts or managing API keys. With ATXP, your agent brings a wallet and pays per request, so you can start building immediately and ship faster.

Why build with ATXP?

  • Reduced friction: Try new tools in minutes—no signups, no keys, no billing setup.
  • Pay-as-you-go cost control: Per-MCP-tool-call pricing; you only pay for what you use.
  • Better security: Keep secrets out of your app; requests are authorized with signed payments instead of shared keys.
  • Composable tooling: Combine multiple paid MCP servers behind a single client and consistent API.

Build your first ATXP agent

1

Install the library

Install the ATXP client SDK in your project:
npm install @atxp/client
2

Set up your account

  • ATXP account
  • Base Mini App account
  • Base account
  • Solana account
  • Worldchain account
  • Polygon account
  • Other accounts
Create an ATXP account and set your account connection string in an environment variable. The best way to do this is to create a .env file in the root of your project and add the following line:
.env
ATXP_CONNECTION=https://accounts.atxp.ai?connection_token=<random_string>
Never commit your .env file to version control. It is a good idea to add your .env to your .gitignore file to prevent it from being committed.
echo .env >> .gitignore
3

Define the services that you want to use

Define the services that you want to use in your client.
const browseService = {
  mcpServer: 'https://browse.mcp.atxp.ai/',
  toolName: 'atxp_browse',
  description: 'browse',
  getArguments: (prompt: string) => ({ query: prompt }),
  getResult: (result: any) => result.content[0].text
};
4

Create an ATXP client

  • With an ATXP account
  • With a BaseApp account
  • With a Base account
  • With a Solana account
  • With a Worldchain account
  • With a Polygon account
Create a client using an ATXP account by importing the ATXP client SDK and other dependencies.
// Import the ATXP client SDK
import { atxpClient, ATXPAccount } from '@atxp/client';

// Read the ATXP account details from environment variables
const atxpConnectionString = process.env.ATXP_CONNECTION;

// Create a client using the `atxpClient` function
const client = await atxpClient({
  mcpServer: browseService.mcpServer,
  account: new ATXPAccount(atxpConnectionString),
});
5

Use the services in your agent

Use the services in your agent.
const prompt = "What are the top 3 articles by points on https://news.ycombinator.com?";

try {
  const result = await client.callTool({
      name: browseService.toolName,
      arguments: browseService.getArguments(prompt),
  });
  console.log(`${browseService.description} result successful!`);
  console.log('Result:', browseService.getResult(result));
} catch (error) {
  console.error(`Error with ${browseService.description}:`, error);
  process.exit(1);
}

Resources

I