Skip to main content
Glama
Fewsats

Fewsats MCP Server

Official
by Fewsats

pay_offer

Process payments for specific offers using L402 payment protocol data. Submit offer details and payment context to complete transactions through the Fewsats payment system.

Instructions

Pays an offer_id from the l402_offers.

The l402_offer parameter must be a dict with this structure:
{
    'offers': [
        {
            'id': 'test_offer_2',        # String identifier for the offer
            'amount': 1,                 # Numeric cost value
            'currency': 'usd',           # Currency code
            'description': 'Test offer', # Text description
            'title': 'Test Package'      # Title of the package
        }
    ],
    'payment_context_token': '60a8e027-8b8b-4ccf-b2b9-380ed0930283',  # Payment context token
    'payment_request_url': 'https://api.fewsats.com/v0/l402/payment-request',  # Payment URL
    'version': '0.2.2'  # API version
}

Returns payment status response.
If payment status is `needs_review` inform the user he will have to approve it at app.fewsats.com

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
offer_idYes
l402_offerYes

Implementation Reference

  • MCP tool handler for 'pay_offer': decorated function that executes the payment by delegating to Fewsats.pay_offer and handles the response. Includes input schema in docstring.
    @mcp.tool()
    async def pay_offer(offer_id: str, l402_offer: dict) -> str:
        """Pays an offer_id from the l402_offers.
    
        The l402_offer parameter must be a dict with this structure:
        {
            'offers': [
                {
                    'id': 'test_offer_2',        # String identifier for the offer
                    'amount': 1,                 # Numeric cost value
                    'currency': 'usd',           # Currency code
                    'description': 'Test offer', # Text description
                    'title': 'Test Package'      # Title of the package
                }
            ],
            'payment_context_token': '60a8e027-8b8b-4ccf-b2b9-380ed0930283',  # Payment context token
            'payment_request_url': 'https://api.fewsats.com/v0/l402/payment-request',  # Payment URL
            'version': '0.2.2'  # API version
        }
    
        Returns payment status response.
        If payment status is `needs_review` inform the user he will have to approve it at app.fewsats.com"""
        return handle_response(Fewsats().pay_offer(offer_id, l402_offer))
  • Registration of the 'pay_offer' tool using the @mcp.tool() decorator.
    @mcp.tool()
  • Input schema and usage description for the l402_offer parameter in the pay_offer tool docstring.
    """Pays an offer_id from the l402_offers.
    
    The l402_offer parameter must be a dict with this structure:
    {
        'offers': [
            {
                'id': 'test_offer_2',        # String identifier for the offer
                'amount': 1,                 # Numeric cost value
                'currency': 'usd',           # Currency code
                'description': 'Test offer', # Text description
                'title': 'Test Package'      # Title of the package
            }
        ],
        'payment_context_token': '60a8e027-8b8b-4ccf-b2b9-380ed0930283',  # Payment context token
        'payment_request_url': 'https://api.fewsats.com/v0/l402/payment-request',  # Payment URL
        'version': '0.2.2'  # API version
    }
    
    Returns payment status response.
    If payment status is `needs_review` inform the user he will have to approve it at app.fewsats.com"""

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/Fewsats/fewsats-mcp'

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