Developer integrations

Connect your agent to SingIt

Use MCP tools, an OpenAI-compatible endpoint, or the x402 SDKs.

Three ways to connect

  1. MCP server: https://app.singitai.app/mcp. Free tools are keyless; paid tools need an API key.
  2. OpenAI-compatible endpoint: with a SingIt API key, use https://app.singitai.app/v1 (see Developers). For x402 pay-per-call, use https://ask.singitai.app/v1: no key; a wallet pays for paid calls.
  3. x402 SDKs: use the repository recipes for wallet-funded requests.

The model snippets below were run on 31 October 2026 in Prague, with Node 24.22.1 / Python 3.13.5, against the x402 host's free route, model free/deepseek-v4.1-flash, with a dummy API key and no payment. Each returned “pong”. This verifies client wiring: the base URL, model ID and response shape. The MCP snippets listed 16 tools on the real server, keyless.

Not tested: the SingIt API-key variant. Change only the base URL setting (base_url, baseURL, or LiteLLM's api_base) to https://app.singitai.app/v1 and the API key setting to your SingIt key. That exact variant was not run; no SingIt key was used.

Not tested: paid x402 payment from these libraries. It needs a funded wallet; follow the existing recipes below.

Models · Pricing · Limits for wallets that gave SingIt an allowance

LangChain — Python and JavaScript

Use ChatOpenAI for model calls and MCP adapters to load tools.

Vendor docs: LangChain Python ChatOpenAI · LangChain JS · LangChain MCP Python · LangChain MCP JS.

Python model

Verified — 31 October 2026, Prague; langchain-openai 1.7.3; openai 2.54.0. Result: pong; free route, dummy API key, no payment.

from langchain_openai import ChatOpenAI
chat = ChatOpenAI(model="free/deepseek-v4.1-flash", api_key="unused", base_url="https://ask.singitai.app/v1", max_retries=0, max_tokens=60)
print("langchain-py:", repr(chat.invoke("Reply with the single word: pong").content)[:120])

JavaScript model

Verified — 31 October 2026, Prague; @langchain/openai 1.8.0; @langchain/core 1.3.2. Result: pong; free route, dummy API key, no payment.

import { ChatOpenAI } from "@langchain/openai";
const chat = new ChatOpenAI({ model: "free/deepseek-v4.1-flash", apiKey: "unused", maxRetries: 0, maxTokens: 60,
  configuration: { baseURL: "https://ask.singitai.app/v1" } });
const r = await chat.invoke("Reply with the single word: pong");
console.log("langchain-js:", JSON.stringify(r.content).slice(0,120));

Python MCP tools

Verified — 31 October 2026, Prague; langchain-mcp-adapters 0.3.2; mcp 1.30.0. Result: 16 MCP tools; keyless MCP, no payment.

import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
async def main():
    c = MultiServerMCPClient({"singit": {"transport": "streamable_http", "url": "https://app.singitai.app/mcp"}})
    tools = await c.get_tools()
    print("langchain-py mcp tools:", len(tools), [t.name for t in tools][:3])
asyncio.run(main())

JavaScript MCP tools

Verified — 31 October 2026, Prague; @langchain/mcp-adapters 2.0.1; @langchain/core 1.3.2. Result: 16 MCP tools; keyless MCP, no payment.

import { MultiServerMCPClient } from "@langchain/mcp-adapters";
const client = new MultiServerMCPClient({ mcpServers: { singit: { transport: "http", url: "https://app.singitai.app/mcp" } } });
const tools = await client.getTools();
console.log("langchain-js mcp tools:", tools.length, tools.slice(0,3).map(t=>t.name));
const t = tools.find(t=>t.name.endsWith("list_price_symbols"));
const out = await t.invoke({}); console.log(String(typeof out==="string"?out:JSON.stringify(out)).slice(0,150));
await client.close();

Vercel AI SDK

Use an OpenAI-compatible provider for text generation and the MCP client for tools.

Vendor docs: AI SDK compatible providers · AI SDK MCP.

Model call

Verified — 31 October 2026, Prague; ai 7.0.159; @ai-sdk/openai-compatible 3.0.82. Result: pong; free route, dummy API key, no payment.

import { generateText } from "ai";
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
const singit = createOpenAICompatible({ name: "singit", baseURL: "https://ask.singitai.app/v1", apiKey: "unused" });
const { text } = await generateText({ model: singit("free/deepseek-v4.1-flash"), prompt: "Reply with the single word: pong", maxOutputTokens: 60, maxRetries: 0 });
console.log("ai-sdk:", JSON.stringify(text).slice(0,120));

MCP tools

Verified — 31 October 2026, Prague; @ai-sdk/mcp 2.0.88. Result: 16 MCP tools; keyless MCP, no payment.

import { createMCPClient } from "@ai-sdk/mcp";
const c = await createMCPClient({ transport: { type: "http", url: "https://app.singitai.app/mcp" } });
const tools = await c.tools();
console.log("ai-sdk mcp tools:", Object.keys(tools).length, Object.keys(tools).slice(0,3));
await c.close();

OpenAI Agents SDK — Python and JavaScript

Connect an agent through Chat Completions; the Python MCP example lists server tools.

Vendor docs: Agents Python models · Agents Python MCP · Agents JS models.

Python model

Verified — 31 October 2026, Prague; openai-agents 0.20.0; openai 2.54.0. Result: pong; free route, dummy API key, no payment.

from openai import AsyncOpenAI
from agents import Agent, Runner, OpenAIChatCompletionsModel, ModelSettings, set_tracing_disabled
set_tracing_disabled(True)
client = AsyncOpenAI(base_url="https://ask.singitai.app/v1", api_key="unused", max_retries=0)
agent = Agent(name="t", instructions="Answer in one word.", model=OpenAIChatCompletionsModel(model="free/deepseek-v4.1-flash", openai_client=client), model_settings=ModelSettings(max_tokens=60))
print("agents-py:", repr(Runner.run_sync(agent, "Reply with the single word: pong").final_output)[:120])

JavaScript model

Verified — 31 October 2026, Prague; @openai/agents 0.21.0; openai 7.47.0. Result: pong; free route, dummy API key, no payment.

import OpenAI from "openai";
import { Agent, run, setDefaultOpenAIClient, setOpenAIAPI, setTracingDisabled } from "@openai/agents";
setTracingDisabled(true);
const client = new OpenAI({ baseURL: "https://ask.singitai.app/v1", apiKey: "unused", maxRetries: 0 });
setDefaultOpenAIClient(client); setOpenAIAPI("chat_completions");
const agent = new Agent({ name: "t", instructions: "Answer in one word.", model: "free/deepseek-v4.1-flash", modelSettings: { maxTokens: 60 } });
const r = await run(agent, "Reply with the single word: pong");
console.log("agents-js:", JSON.stringify(r.finalOutput).slice(0,120));

Python MCP tools

Verified — 31 October 2026, Prague; openai-agents 0.20.0; mcp 1.30.0. Result: 16 MCP tools; keyless MCP, no payment.

import asyncio
from agents.mcp import MCPServerStreamableHttp
async def main():
    async with MCPServerStreamableHttp(name="singit", params={"url": "https://app.singitai.app/mcp"}) as s:
        tools = await s.list_tools()
        print("agents-py mcp tools:", len(tools), [t.name for t in tools][:3])
asyncio.run(main())

LiteLLM

Use the OpenAI-compatible provider to call SingIt through LiteLLM.

Vendor docs: LiteLLM.

Python model

Verified — 31 October 2026, Prague; litellm 1.106.6; openai 2.54.0. Result: pong; free route, dummy API key, no payment.

import litellm
r = litellm.completion(model="openai/free/deepseek-v4.1-flash", api_base="https://ask.singitai.app/v1", api_key="unused",
    messages=[{"role":"user","content":"Reply with the single word: pong"}], max_tokens=60, num_retries=0)
print("litellm:", repr(r.choices[0].message.content)[:120])

Coinbase AgentKit

AgentKit provides wallet actions for agents. Its Python x402 action provider has make_http_request, retry_http_request_with_x402 (after a 402), and make_http_request_with_x402 (the README says to use it only when told to skip the confirmation flow). discover_x402_services exists in the TypeScript package.

Not tested with SingIt: needs a CDP wallet and a paid call. SingIt's routes require x402 v2; the Python package pins x402 <2, so check version support before relying on it.

These package facts come from the published coinbase-agentkit 0.7.4 PyPI README, read on 31 October 2026. SingIt's chat route is discoverable in Coinbase Bazaar, validated active on that date. See SingIt’s Bazaar listing and discovery recipe.

Vendor docs: AgentKit repository · AgentKit Python README.

ElizaOS

The existing repository plugin, @singitai/plugin-singit, connects ElizaOS to SingIt. Not published to npm; install from a Git checkout.

Partly tested: on 31 October 2026 the plugin’s own test suite passed (npm ci && npm test in integrations/elizaos-plugin: 43 of 43). Not tested: inside a running ElizaOS agent, or with a paid call.

ElizaOS recipe · Plugin source

Vendor docs: ElizaOS.

Existing SingIt example projects

LangChain example · Vercel AI SDK example · TypeScript x402 SDK · Python x402 SDK. These contain the existing paid-call recipes; the free snippets above do not verify payment.