The @atxp/server package is a support package used for packages like @atxp/express. You should generally not need to reference @atxp/server directly.
This package depends on types and utilities from @atxp/common. All shared types like ATXPArgs and payment utilities are documented in the common package.
Returns the accountId of the ATXP user of the current server request. Use this in the code of an MCP tool, or anywhere else inside the context of ATXP middleware, to get the current user.
Account ids should be treated as opaque strings. They are unique per user, but you should not assume they have any semantic meaning.
Arguments
NoneExample usage
Copy
Ask AI
import { requirePayment, atxpAccountId } from '@atxp/server'import BigNumber from 'bignumber.js'server.tool( "add", "Use this tool to return a personalized greeting.", { name: z.string().describe("Name of the user"), }, async ({ name }) => { // Require payment for the tool call await requirePayment({price: BigNumber(0.01)}); const accountId = atxpAccountId(); return { content: [ { type: "text", text: `Hello ${name}! Your user id is ${accountId}` }, ], }; });
A function that returns the ID of an existing payment for the tool call. If not provided, a new payment will be created.
Example usage
Copy
Ask AI
import { requirePayment } from '@atxp/server'import BigNumber from 'bignumber.js'server.tool( "add", "Use this tool to add two numbers together.", { a: z.number().describe("The first number to add"), b: z.number().describe("The second number to add"), }, async ({ a, b }) => { // Require payment for the tool call await requirePayment({price: BigNumber(0.01)}); return { content: [ { type: "text", text: `${a + b}`, }, ], }; });