LangChain tools for instanode.dev — let your LangChain agents provision ephemeral Postgres databases and webhook receivers mid-task with a single tool call. No Docker, no account needed for the free tier.
pip install langchain-instanode
Most LangChain agents that need storage hit a friction wall: they either burn
hundreds of tokens generating boilerplate Docker/setup code, or they silently
give up and go stateless. langchain-instanode exposes four tools that let an
agent skip all of that and just get a database.
provision_postgres→ apostgres://DSN (pgvector pre-installed for RAG).provision_webhook→ an HTTPS receiver URL (good for GitHub/Stripe/Slack flows).list_resources→ enumerate what the agent has already provisioned.
MongoDB, Redis/cache, NATS queue, and heartbeat-monitor tools are on the
roadmap, gated on the corresponding backend endpoints landing. They live
on the feature/full-api branch.
Free tier: anonymous, 24h TTL, 10 MB / 2 connections. Paid tier (set
INSTANODE_API_KEY): permanent, 500 MB / 5 connections, higher provisioning
limits.
from langchain_instanode import get_instanode_tools
from langchain_anthropic import ChatAnthropic
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
llm = ChatAnthropic(model="claude-sonnet-4-6")
tools = get_instanode_tools()
prompt = ChatPromptTemplate.from_messages([
("system",
"You are a helpful coding assistant. When you need a database or webhook, "
"call the instanode tools instead of writing setup boilerplate."),
("placeholder", "{chat_history}"),
("human", "{input}"),
("placeholder", "{agent_scratchpad}"),
])
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
executor.invoke({"input":
"Stand up a Postgres DB, create a `notes` table with (id, body), and "
"insert one row."
})The agent will call provision_postgres, get back a DSN, run its SQL against
the live database, and report the result — all inside one turn.
If you want the agent to only have webhook powers (not database provisioning):
tools = get_instanode_tools(include=["provision_webhook"])tools = get_instanode_tools(api_key="sk_...")Or set INSTANODE_API_KEY in the environment.
langchain-instanode
├── instanode (the HTTP SDK — pure stdlib, no deps)
├── langchain-core (BaseTool + pydantic schemas)
└── pydantic>=2 (args_schema for structured tool calls)
- Python SDK: https://pypi.org/project/instanode/
- MCP server: https://www.npmjs.com/package/@instanode/mcp (for Claude Code / Cursor / Windsurf users who prefer MCP over LangChain)
- Raw HTTP API: https://instanode.dev/llms.txt
MIT — see LICENSE.