Harness MCP Server
OFFICIAL SERVERManage Harness.io pipelines, deployments, feature flags, cloud costs and more from an MCP client
Run a self-hosted L Harness LINE Official Account CRM from an MCP client: friends, tags, scenarios, broadcasts
By 野田 修一 (individual) TypeScript Local · stdio CRM and salesCommunication
45 popularity score ★ 614 ↓ 295/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs LINE_HARNESS_API_URL, LINE_HARNESS_API_KEY. Replace each <NAME> with your value.
claude mcp add l-harness -e LINE_HARNESS_API_URL=<LINE_HARNESS_API_URL> -e LINE_HARNESS_API_KEY=<LINE_HARNESS_API_KEY> -- npx -y @line-harness/mcp-server@latest{
"mcpServers": {
"l-harness": {
"command": "npx",
"args": [
"-y",
"@line-harness/mcp-server@latest"
],
"env": {
"LINE_HARNESS_API_URL": "<LINE_HARNESS_API_URL>",
"LINE_HARNESS_API_KEY": "<LINE_HARNESS_API_KEY>"
}
}
}
}{
"mcpServers": {
"l-harness": {
"command": "npx",
"args": [
"-y",
"@line-harness/mcp-server@latest"
],
"env": {
"LINE_HARNESS_API_URL": "<LINE_HARNESS_API_URL>",
"LINE_HARNESS_API_KEY": "<LINE_HARNESS_API_KEY>"
}
}
}
}{
"servers": {
"l-harness": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@line-harness/mcp-server@latest"
],
"env": {
"LINE_HARNESS_API_URL": "<LINE_HARNESS_API_URL>",
"LINE_HARNESS_API_KEY": "<LINE_HARNESS_API_KEY>"
}
}
}
}[mcp_servers.l-harness]
command = "npx"
args = ["-y", "@line-harness/mcp-server@latest"]
[mcp_servers.l-harness.env]
LINE_HARNESS_API_URL = "<LINE_HARNESS_API_URL>"
LINE_HARNESS_API_KEY = "<LINE_HARNESS_API_KEY>"gemini mcp add --scope user -e LINE_HARNESS_API_URL=<LINE_HARNESS_API_URL> -e LINE_HARNESS_API_KEY=<LINE_HARNESS_API_KEY> l-harness npx -- -y @line-harness/mcp-server@latestLINE_HARNESS_API_URL |
Required: URL of your deployed L Harness Worker, e.g. https://<name>.workers.dev. |
|---|---|
LINE_HARNESS_API_KEY |
Required: API key issued in the L Harness admin for a staff user. |
LINE_HARNESS_ACCOUNT_ID |
Optional: Default LINE account ID when the deployment manages several accounts. |
L Harness is an open-source CRM for LINE Official Accounts that you deploy to your own Cloudflare account (a Worker with a D1 database plus a Next.js admin site). The MCP server, published on npm as @line-harness/mcp-server, is a thin stdio wrapper around the project's TypeScript SDK: it calls your deployed Worker's HTTP API with a staff API key, and the Worker in turn talks to the LINE Messaging API.
Through it an assistant can look up friends and their details, read form answers, link clicks and conversion logs, see unanswered chats, and change most of the CRM: send a message to one friend, broadcast to everyone or a tag or segment, build step-message scenarios and enrol friends in them, manage tags, forms, rich menus, tracked links, auto-replies, message templates, traffic pools, entry routes, staff and ad platforms, and upload images or an HLS webinar video. It also exposes three read-only resources (line-harness://friends, line-harness://scenarios, line-harness://tags).
The MCP server page in the project wiki says it has 25 tools and lists 24, but the tool index at v0.24.0 registers 31; the extra ones (manage_auto_replies, manage_traffic_pools, manage_entry_routes, manage_message_templates, list_conversations, get_conversation, manage_webinar_video) appear only in the source. The client code also reads an optional LINE_HARNESS_ACCOUNT_ID that the docs do not mention, used as the default LINE account when you run several.
The project is by Shudesu (Shuichi Noda), not by LY Corporation, which runs LINE. The software is free under MIT; LINE message fees, Cloudflare usage and any domain are paid separately.
| Runtime | Node.js 20+ |
|---|
Node.js 20 or later for the MCP server (npx). A running L Harness deployment: a Cloudflare account (free tier works), a LINE Official Account with a Messaging API channel, and the Worker deployed with `npx create-line-harness` (that CLI needs Node.js 22+ and pnpm). You need the Worker's URL and an API key issued in the admin for a staff user. LINE delivery fees and Cloudflare usage are billed by those services.
It works only through an L Harness Worker you have deployed, not LINE directly. LINE_HARNESS_API_URL and LINE_HARNESS_API_KEY are checked on the first tool call, not at start, so a missing value shows up as every tool failing. send_message and broadcast turn URLs in a message into tracked links and text into a Flex message with a button by default (trackLinks defaults to true on send_message). list_conversations returns 50 by default, up to 200. The friends resource shows only the newest 20. manage_webinar_video does not encode video: you run ffmpeg yourself first and point it at the HLS output folder. On Cloudflare D1's free plan, queries fail once the daily read/write cap is reached.
Suits teams already running, or willing to self-host, L Harness on Cloudflare for a LINE Official Account in Japan or elsewhere, who want an assistant to check unanswered chats, pull friend and click data, or draft and send scenarios and broadcasts. Most tools change live data and several send messages to real customers, so it suits operators who review each send in their client. It is not a general LINE Messaging API server: without an L Harness deployment it does nothing, and someone on a paid LINE CRM such as L-step would need to migrate first.
list_friendsget_friend_detailget_form_submissionsget_link_clicksget_conversion_logsaccount_summarylist_crm_objectslist_conversationsget_conversationsend_messagebroadcastcreate_scenarioenroll_in_scenariocreate_formcreate_rich_menucreate_tracked_linkupload_imagemanage_friendsmanage_tagsmanage_scenariosmanage_broadcastsmanage_rich_menusmanage_formsmanage_tracked_linksmanage_staffmanage_ad_platformsmanage_auto_repliesmanage_message_templatesmanage_traffic_poolsmanage_entry_routesmanage_webinar_video