Skip to main content
Glama
b-open-io

Bitcoin SV MCP Server

by b-open-io

bsv_getPrice

Fetch the current Bitcoin SV (BSV) price in USD to calculate transaction values, monitor market conditions, or convert between BSV and fiat currencies using real-time data from a reliable exchange API.

Instructions

Retrieves the current price of Bitcoin SV (BSV) in USD from a reliable exchange API. This tool provides real-time market data that can be used for calculating transaction values, monitoring market conditions, or converting between BSV and fiat currencies.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
argsNoNo parameters required - simply returns the current BSV price in USD

Implementation Reference

  • The handler function for the 'bsv_getPrice' tool. It calls getBsvPriceWithCache to fetch the price, formats it, and returns it as text content, handling errors appropriately.
    	async () => {
    		try {
    			const price = await getBsvPriceWithCache();
    			return {
    				content: [
    					{
    						type: "text",
    						text: `Current BSV price: $${price.toFixed(2)} USD`,
    					},
    				],
    			};
    		} catch (err) {
    			return {
    				content: [{ type: "text", text: "Error fetching BSV price." }],
    				isError: true,
    			};
    		}
    	},
    );
  • Zod schema for tool input arguments. Defines an optional empty object, indicating no parameters are required.
    args: z
    	.object({})
    	.optional()
    	.describe(
    		"No parameters required - simply returns the current BSV price in USD",
    	),
  • The registration function 'registerGetPriceTool' that registers the 'bsv_getPrice' tool on the MCP server, including name, description, schema, and handler.
    export function registerGetPriceTool(server: McpServer): void {
    	server.tool(
    		"bsv_getPrice",
    		"Retrieves the current price of Bitcoin SV (BSV) in USD from a reliable exchange API. This tool provides real-time market data that can be used for calculating transaction values, monitoring market conditions, or converting between BSV and fiat currencies.",
    		{
    			args: z
    				.object({})
    				.optional()
    				.describe(
    					"No parameters required - simply returns the current BSV price in USD",
    				),
    		},
    		async () => {
    			try {
    				const price = await getBsvPriceWithCache();
    				return {
    					content: [
    						{
    							type: "text",
    							text: `Current BSV price: $${price.toFixed(2)} USD`,
    						},
    					],
    				};
    			} catch (err) {
    				return {
    					content: [{ type: "text", text: "Error fetching BSV price." }],
    					isError: true,
    				};
    			}
    		},
    	);
    }
  • Helper function that fetches the BSV price from Whatsonchain API with a 5-minute caching mechanism to avoid excessive API calls.
    async function getBsvPriceWithCache(): Promise<number> {
    	// Return cached price if it's still valid
    	if (
    		cachedPrice &&
    		Date.now() - cachedPrice.timestamp < PRICE_CACHE_DURATION
    	) {
    		return cachedPrice.value;
    	}
    
    	// If no valid cache, fetch new price
    	const res = await fetch(
    		"https://api.whatsonchain.com/v1/bsv/main/exchangerate",
    	);
    	if (!res.ok) throw new Error("Failed to fetch price");
    
    	const data = (await res.json()) as {
    		currency: string;
    		rate: string;
    		time: number;
    	};
    
    	const price = Number(data.rate);
    	if (Number.isNaN(price) || price <= 0)
    		throw new Error("Invalid price received");
    
    	// Update cache
    	cachedPrice = {
    		value: price,
    		timestamp: Date.now(),
    	};
    
    	return price;
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Related Tools

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/b-open-io/bsv-mcp'

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