@accos/mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@accos/mcp-serverExtract data from this Thai receipt for AP."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@accos/mcp-server
ACCOS MCP server — Thai accounting OCR via Model Context Protocol.
Connects Claude Desktop, Cursor, Claude Code, n8n, or any MCP-compatible AI agent to ACCOS so the agent can read Thai receipts, tax invoices, and withholding tax certificates without you writing glue code.
Quick start
1. Get an API key + secret
Generate a key pair at accos.app/settings/api-keys.
Both the key (ak_live_…) and the secret (sk_live_…) are required —
every tool call is HMAC-signed.
2. Add to your MCP client
Claude Desktop — edit claude_desktop_config.json:
{
"mcpServers": {
"accos": {
"command": "npx",
"args": ["-y", "@accos/mcp-server"],
"env": {
"ACCOS_API_KEY": "ak_live_xxx",
"ACCOS_API_SECRET": "sk_live_xxx"
}
}
}
}Cursor — edit ~/.cursor/mcp.json (same shape).
Claude Code — claude mcp add accos -- npx -y @accos/mcp-server,
then set the two env vars in your shell.
Restart your agent — ACCOS tools appear in the tool list.
Related MCP server: Document Tools
Tools
Tool | Cost | Purpose |
| free | Pre-flight: page count, MIME, advice |
| 1 token | Extract data from a single-page receipt/invoice |
| 1 token | Validate a 13-digit Thai tax ID against the RD/DBD registry |
| 1 token | Search master data (vendors/customers/products) |
| free | List custom templates accessible to this key |
| free | Dry-run the cost of a planned tool call |
| free | Current token balance + active batches |
| free | List open Task Tracker tasks you can see |
| free | Open tasks assigned to you |
| free | One task in full (checklist, comments, activity) |
| free | Move a task to todo / in_progress / review |
Task Tracker tools
list_tasks, my_tasks, and get_task read the ACCOS Task Tracker
module. They require:
the API key scope
tasks:read(tick "Grant read access to the Task Tracker module" when creating the key), andthe Task Tracker module enabled on the account.
set_task_status additionally requires the scope tasks:write and editor
access to the task's project. It can only move a task between todo,
in_progress, and review — closing or cancelling a task stays a human
action in the web app.
Visibility follows project membership — you only ever see tasks in
projects you own, are a member of, or that are public. This is enforced
server-side, not by company. Tasks are referenced as KEY-N
(e.g. ACCOS-12); pass that ref to get_task for full detail.
Strict 1-page contract
read_document accepts EXACTLY ONE page per call. Multi-page PDFs are
rejected — split them locally first:
# pypdf example
from pypdf import PdfReader, PdfWriter
for i, page in enumerate(PdfReader("input.pdf").pages):
w = PdfWriter()
w.add_page(page)
w.write(f"page_{i}.pdf")// pdf-lib example
import { PDFDocument } from "pdf-lib";
const src = await PDFDocument.load(await fs.readFile("input.pdf"));
for (let i = 0; i < src.getPageCount(); i++) {
const out = await PDFDocument.create();
const [pg] = await out.copyPages(src, [i]);
out.addPage(pg);
await fs.writeFile(`page_${i}.pdf`, await out.save());
}Then call read_document once per page (parallel is fine, max 10 concurrent).
Destination is mandatory
Every read_document call MUST declare where the data is going:
ar— sales invoices your company issuedap— purchase invoices your company receivedwht— withholding tax certificates (50 ทวิ)custom— anything else; also passtemplate_share_code
ACCOS never infers this from content. Ask the user if unclear.
Configuration reference
env var | required | default |
| yes | — |
| yes | — |
| no |
|
| no |
|
License
Apache-2.0
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/KongFourThousand/accos-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server