Skip to main content
Glama

Satim Payment Gateway Integration

by zakblacki
http-wrapper.ts2.95 kB
import express from 'express'; import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; import { spawn } from "child_process"; import { z } from "zod"; const app = express(); app.use(express.json()); // Define the response schema for MCP requests const mcpResponseSchema = z.object({ content: z.array(z.object({ type: z.string(), text: z.string().optional() })).optional(), isError: z.boolean().optional() }); class MCPHttpWrapper { private client: Client; private transport: StdioClientTransport; constructor() { this.transport = new StdioClientTransport({ command: "ts-node", args: ["satim-mcp-server.ts"] }); this.client = new Client({ name: "satim-http-wrapper", version: "1.0.0" }, { capabilities: {} }); } async connect() { await this.client.connect(this.transport); } async callTool(name: string, args: any) { return await this.client.request({ method: "tools/call", params: { name, arguments: args } }, mcpResponseSchema); } } const mcpWrapper = new MCPHttpWrapper(); // Initialize connection mcpWrapper.connect().then(() => { console.log("MCP wrapper connected"); }); // API Routes app.post('/api/satim/configure', async (req, res) => { try { const result = await mcpWrapper.callTool('configure_credentials', req.body); res.json(result); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error occurred' }); } }); app.post('/api/satim/register', async (req, res) => { try { const result = await mcpWrapper.callTool('register_order', req.body); res.json(result); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error occurred' }); } }); app.post('/api/satim/confirm', async (req, res) => { try { const result = await mcpWrapper.callTool('confirm_order', req.body); res.json(result); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error occurred' }); } }); app.post('/api/satim/refund', async (req, res) => { try { const result = await mcpWrapper.callTool('refund_order', req.body); res.json(result); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error occurred' }); } }); app.post('/api/satim/validate', async (req, res) => { try { const result = await mcpWrapper.callTool('validate_payment_response', req.body); res.json(result); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error occurred' }); } }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`SATIM HTTP API running on port ${PORT}`); });

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/zakblacki/Satim-Payment-Gateway-Integration'

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