Skip to main content
Glama
UserAd

didlogic_mcp

list_purchases

Retrieve detailed information about purchased DIDs, including number, channels, location, pricing, and SIP codec preferences, with pagination support for easy navigation.

Instructions

List purchased DIDs in DIDLogic

Args: page: page of result starting with 1 per_page: how many results should be on per page

Returns a JSON object with a call history results where: purchases: List of purchased DIDs number: Number of DID channels: How many parallel channels DID have country: Country name area: City name free_minutes: How many free minutes per month DID have activation: Activation cost for DID in USD monthly_fee: Monthly fee for DID per_minute: Per minute cost for DID codec: what SIP codec is preferred for this number check_state: DID state

pagination: Pagination details for results
    page: current page of results
    per_page: results per page
    total_pages: total pages results
    total_records: total query records (maximum 5000)

Example response:

{
    "purchases": [
        {
            "number": "441172999999",
            "channels": 2,
            "country": "United Kingdom",
            "area": "Bristol",
            "codec": "G711",
            "activation": 0.0,
            "monthly_fee": 0.99,
            "per_minute": 0.001,
            "check_state": "checked",
            "free_minutes": 0
        }
    ],
    "pagination": {
        "pages": 1,
        "page": 1,
        "per_page": 100,
        "total_records": 50
    }
}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage for purchases
per_pageNoResults per page

Implementation Reference

  • The main handler function for the 'list_purchases' tool. It defines the input parameters with descriptions (schema), documentation, and executes the API call to list purchases with pagination.
    @mcp.tool()
    async def list_purchases(
        ctx: Context,
        page: Optional[int] = Field(
            description="Page for purchases", default=None
        ),
        per_page: Optional[int] = Field(
            description="Results per page", default=None
        )
    ) -> str:
        """
            List purchased DIDs in DIDLogic
    
            Args:
                page: page of result starting with 1
                per_page: how many results should be on per page
    
            Returns a JSON object with a call history results where:
                purchases: List of purchased DIDs
                    number: Number of DID
                    channels: How many parallel channels DID have
                    country: Country name
                    area: City name
                    free_minutes: How many free minutes per month DID have
                    activation: Activation cost for DID in USD
                    monthly_fee: Monthly fee for DID
                    per_minute: Per minute cost for DID
                    codec: what SIP codec is preferred for this number
                    check_state: DID state
    
                pagination: Pagination details for results
                    page: current page of results
                    per_page: results per page
                    total_pages: total pages results
                    total_records: total query records (maximum 5000)
    
            Example response:
            ```
            {
                "purchases": [
                    {
                        "number": "441172999999",
                        "channels": 2,
                        "country": "United Kingdom",
                        "area": "Bristol",
                        "codec": "G711",
                        "activation": 0.0,
                        "monthly_fee": 0.99,
                        "per_minute": 0.001,
                        "check_state": "checked",
                        "free_minutes": 0
                    }
                ],
                "pagination": {
                    "pages": 1,
                    "page": 1,
                    "per_page": 100,
                    "total_records": 50
                }
            }
            ```
        """
        params = {}
        if page is not None:
            params["page"] = page
        if per_page is not None:
            params["per_page"] = per_page
        response = await base.call_didlogic_api(
            ctx, "GET",
            "/v1/purchases",
            params=params
        )
        return response.text
  • Input schema for the list_purchases tool defined using Pydantic Field with descriptions for page and per_page parameters.
        ctx: Context,
        page: Optional[int] = Field(
            description="Page for purchases", default=None
        ),
        per_page: Optional[int] = Field(
            description="Results per page", default=None
        )
    ) -> str:
  • Registration block where tools.purchases.register_tools(mcp) is called to register the list_purchases tool among others.
    tools.balance.register_tools(mcp)
    tools.sip_accounts.register_tools(mcp)
    tools.allowed_ips.register_tools(mcp)
    tools.purchases.register_tools(mcp)
    tools.purchase.register_tools(mcp)
    tools.calls.register_tools(mcp)
    tools.transactions.register_tools(mcp)
  • The register_tools function in the purchases module that defines and registers the tool using @mcp.tool() decorator.
    def register_tools(mcp: FastMCP):

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/UserAd/didlogic_mcp'

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