We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/curvegrid/multibaas-mcp-poc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
// Operations for managing addresses
import { z } from "zod";
import { getAddressesApi } from "../common/client";
import {
CurvegridResourceNotFoundError,
CurvegridError,
} from "../common/errors";
import { GetAddressIncludeEnum } from "@curvegrid/multibaas-sdk";
// Schema for listing addresses
export const ListAddressesSchema = z.object({});
// Schema for getting address details
export const GetAddressSchema = z.object({
addressOrAlias: z.string().describe("Address or alias to get details for"),
include: z
.array(
z.enum(
Object.values(GetAddressIncludeEnum) as [
"code",
"balance",
"nonce",
"contractLookup",
],
),
)
.optional()
.describe(
"Optional data to fetch: balance, code, nonce, or contractLookup",
),
});
// Schema for setting address alias
export const SetAddressSchema = z.object({
alias: z.string().describe("Alias for the address"),
address: z.string().describe("Ethereum address to alias"),
});
// Schema for deleting address alias
export const DeleteAddressSchema = z.object({
addressOrAlias: z.string().describe("Address or alias to delete"),
});
// List all addresses
export async function listAddresses(
options: z.infer<typeof ListAddressesSchema> = {},
) {
try {
const addressesApi = getAddressesApi();
const response = await addressesApi.listAddresses();
return response.data.result;
} catch (error: any) {
if (error.response?.status === 404) {
throw new CurvegridResourceNotFoundError("Addresses not found");
}
throw new CurvegridError(`Failed to list addresses: ${error.message}`);
}
}
// Get address details
export async function getAddress(options: z.infer<typeof GetAddressSchema>) {
try {
const addressesApi = getAddressesApi();
const response = await addressesApi.getAddress(
options.addressOrAlias,
options.include,
);
return response.data.result;
} catch (error: any) {
if (error.response?.status === 404) {
throw new CurvegridResourceNotFoundError(
`Address ${options.addressOrAlias} not found`,
);
}
throw new CurvegridError(`Failed to get address: ${error.message}`);
}
}
// Set address alias
export async function setAddress(options: z.infer<typeof SetAddressSchema>) {
try {
const addressesApi = getAddressesApi();
const response = await addressesApi.setAddress({
alias: options.alias,
address: options.address,
});
return response.data.result;
} catch (error: any) {
if (error.response?.status === 404) {
throw new CurvegridResourceNotFoundError(
`Failed to set alias for address ${options.address}`,
);
}
throw new CurvegridError(`Failed to set address alias: ${error.message}`);
}
}
// Delete address alias
export async function deleteAddress(
options: z.infer<typeof DeleteAddressSchema>,
) {
try {
const addressesApi = getAddressesApi();
await addressesApi.deleteAddress(options.addressOrAlias);
return;
} catch (error: any) {
if (error.response?.status === 404) {
throw new CurvegridResourceNotFoundError(
`Address or alias ${options.addressOrAlias} not found`,
);
}
throw new CurvegridError(
`Failed to delete address alias: ${error.message}`,
);
}
}