OpenClaw MCP Server
General TypeScript MCP server that provides tools for OpenClaw capabilities, including balance and invoice retrieval from RMappi/Osuria.
README
OpenClaw MCP Server
General TypeScript MCP server for OpenClaw tools.
The server is organized around toolsets so new OpenClaw capabilities can be added without recreating MCP startup, transport, and registration boilerplate.
Structure
src/
index.ts # transport startup
server.ts # MCP server factory
toolsets/
index.ts # registers all toolsets
toolset.ts # shared toolset interface
core.ts # base server introspection tools
Install
npm install
Build
npm run build
Run
npm start
The server only supports stdio transport and is intended for local MCP clients that spawn the server process.
Deploy as a STDIO MCP Server
This server is deployed by installing dependencies, building the TypeScript output, and configuring an MCP client to spawn the built stdio entry point.
From the repository directory:
npm install
npm run build
Use node with the absolute path to dist/index.js as the MCP server command. Example client configuration:
{
"mcpServers": {
"openclaw": {
"command": "node",
"args": [
"C:\\Projects\\openclaw-mcp-tools\\dist\\index.js"
],
"env": {
"ENV_RMAPPI_USER": "email@example.com",
"ENV_RMAPPI_PASSWORD": "password"
}
}
}
}
For a cloned checkout in a different location, replace the args path with that checkout's absolute dist/index.js path.
For macOS or Linux, the same configuration uses a POSIX path:
{
"mcpServers": {
"openclaw": {
"command": "node",
"args": [
"/absolute/path/to/openclaw-mcp-tools/dist/index.js"
],
"env": {
"ENV_RMAPPI_USER": "email@example.com",
"ENV_RMAPPI_PASSWORD": "password"
}
}
}
}
If using the RMappi/Osuria tools on a fresh machine, also install the Chromium browser binary once:
npx playwright install chromium
After changing TypeScript files, run npm run build again before restarting the MCP client. The client owns the server process lifecycle; stop and restart the MCP client to pick up a new build or environment variable changes.
Inspect
Build first, then run the MCP Inspector against the stdio entry point:
npm run build
npm run inspect
Equivalent direct command:
npx @modelcontextprotocol/inspector node dist/index.js
Use dist/index.js, not dist/server.js. The server.js file only exports the MCP server factory and does not connect a stdio transport.
Adding Toolsets
Create a new file in src/toolsets/:
import type { Toolset } from "./toolset.js";
export const myToolset: Toolset = {
name: "my-toolset",
description: "Tools for a focused OpenClaw capability.",
register(server) {
server.registerTool(
"openclaw_my_action",
{
title: "My Action",
description: "Does one focused OpenClaw action.",
inputSchema: {},
annotations: {
readOnlyHint: true,
destructiveHint: false,
idempotentHint: true,
openWorldHint: false
}
},
async () => ({
content: [{ type: "text", text: "ok" }]
})
);
}
};
Then add it to src/toolsets/index.ts.
Tool names should use the openclaw_ prefix and snake_case verbs, for example openclaw_list_projects or openclaw_create_job.
RMappi/Osuria Balance Tool
Tool: openclaw_get_rmappi_balance
Use this tool when the user asks for RMappi/Osuria saldo, bank balance, available funds, or taloyhtion tilin saldo.
Required environment variables:
$env:ENV_RMAPPI_USER = "email@example.com"
$env:ENV_RMAPPI_PASSWORD = "password"
Temporary compatibility fallback:
$env:ENV_RMAPPI__PASSWORD = "password"
The tool does not accept credentials as MCP arguments. It opens https://app.osuria.com, accepts the cookie dialog if present, logs in, navigates to /balance, reads account cards by visible labels, logs out, and closes the browser.
If Playwright browser binaries are not installed yet, run:
npx playwright install chromium
RMappi/Osuria Invoices Tool
Tool: openclaw_get_rmappi_invoices
Use this tool when the user asks for RMappi/Osuria invoices, laskut, voucher numbers, invoice totals, or invoices for a specific month.
Inputs:
{
"year": 2026,
"month": 6
}
Both fields are optional. If omitted, the tool uses the current local year and month.
The tool uses the same ENV_RMAPPI_USER and ENV_RMAPPI_PASSWORD credentials as the balance tool. After login it reads sessionStorage["x-session-token"], calls the RMappi invoices API with that token, returns the API JSON array, logs out, and closes the browser. The token is never returned in tool output.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.