Boostu Teamleader Mcp

io.github.boostuagency由 GitHub 账号 boostuagency 发布v2.1.4更新于 Nov 10, 2026

MCP server for Teamleader Focus CRM. Use Teamleader in Claude and other AI assistants.

已验证STDIO仅桌面效率与工作流商业与电商

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手读取和修改 Teamleader Focus CRM 数据,包括联系人、公司、商机、报价、发票、项目和工单。

可以做什么
  • 创建、更新联系人并关联公司,管理各销售流程中的商机
  • 创建、更新、发送和接受报价;创建、记账、发送发票并登记付款;查看贷项通知单
  • 浏览产品、价格表、分类和计量单位,以及商机阶段、税率、付款条件等参考数据
  • 管理项目、里程碑、工时记录和实时计时器,安排或完成通话与会议
  • 创建并回复支持工单,添加标签和备注,列出和上传文件,注册 Webhook
  • 查询用户、团队、部门和自定义字段定义
适用场景
当 CRM、报价和开票都在 Teamleader Focus 中,并希望助手在不切换应用的情况下起草报价、记账并发送发票、记录工时或回答商机与客户相关问题时适用。
运行要求
通过 npx 或全局 npm 安装本地运行(需要 Node.js)。需要 Teamleader Focus 集成,并提供 OAuth2 授权流程取得的 TEAMLEADER_CLIENT_ID、TEAMLEADER_CLIENT_SECRET 和 TEAMLEADER_REFRESH_TOKEN。由于 Teamleader 每次调用都会轮换刷新令牌,应把 TEAMLEADER_TOKEN_STORE 设为可写文件路径。TEAMLEADER_TOOLS 可限制加载的工具组。
安装前请注意
保存 OAuth2 客户端凭据和刷新令牌,并把轮换后的令牌写入本地文件,二者都不要提交到版本控制。许多工具会写入、发送或修改真实业务数据:发票可被记账和邮件发送、登记付款、报价可被接受(难以撤销)、订阅可被停用、Webhook 可被注册。部分写入接口尚未在真实账户上验证。README 还推广另一个付费托管版本,本包为自托管版本。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Boostu Teamleader Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

🔗 BoostU Teamleader MCP

The open-source Teamleader Focus MCP server. Manage your CRM from Claude and other AI assistants, in plain language. 🤖

[CI] [npm version] [npm downloads] [node] [Model Context Protocol] [tools] [License: MIT] [Made by BoostU]


💡 What is this?

boostu-teamleader-mcp is a Model Context Protocol server that exposes the Teamleader Focus API to AI assistants — including Claude Desktop, Claude Code, Cursor, and Windsurf. It provides over 100 tools spanning the full Teamleader Focus surface: CRM (contacts, companies, deals), sales documents (quotations, invoices, credit notes), product catalog, subscriptions, projects, time tracking, customer-service tickets, and more. Point your AI at it and manage your entire CRM through natural language.

Prefer not to self-host?

Use the managed, always-on edition at teamleader-mcp.boostu.be — no OAuth setup, magic-link login, and a one-click connector for Claude. Free during the preview, paid plans after.

This repository is the open-source MCP server itself: run it locally with your own Teamleader integration. The hosted edition adds multi-tenant authentication, a dashboard, usage insights, and managed token handling on top of the same server.

Self-host (this repo)Managed (boostu.be)
PriceFree, MIT-licensedFree preview, then paid
SetupCreate your own Teamleader integration, run via npxCopy one connector URL into Claude
TokensYou manage .env and the refresh tokenEncrypted and rotated for you
Best forDevelopers and self-hostersNon-technical teams

🔌 How it works

mermaid
flowchart LR    U["🧑 You"] -->|"plain language"| C["🤖 Claude / AI assistant"]    C <-->|"MCP · stdio"| S["🔗 boostu-teamleader-mcp"]    S <-->|"OAuth2 REST"| T["📇 Teamleader Focus API"]

You ask Claude in plain language. Claude calls this MCP server, which authenticates to Teamleader Focus over OAuth2 and runs the matching API call. Your data stays in Teamleader; this server only brokers the calls.

Use the outline button at the top-right of this file to jump to any section.


✨ Highlights

  • 👥 Full CRM: create and update contacts, companies, and deals across all pipelines
  • 🧾 Quotations and invoicing: create quotations on deals, book invoices into accounting, send by email, and register payments
  • 📦 Product catalog: browse products, categories, price lists, and units of measure
  • 🔁 Subscriptions: create, update, and deactivate recurring subscriptions
  • 📊 Projects and time tracking: manage projects, milestones, log time entries, and start/stop live timers
  • 🎫 Customer-service tickets: open tickets, post replies, and update statuses
  • 🔎 Reference-data lookups: resolve deal phases, pipelines, tax rates, payment terms, lost reasons, and more
  • 🔐 OAuth2 with automatic refresh-token rotation: tokens are refreshed transparently; rotated tokens are persisted to a configurable file
  • 🧩 Selectable tool groups: load only the groups you need via TEAMLEADER_TOOLS to keep your assistant's context lean

🚀 Quick Start

Run without installing

bash
npx boostu-teamleader-mcp

Global install

bash
npm i -g boostu-teamleader-mcpboostu-teamleader-mcp

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "teamleader": {      "command": "npx",      "args": ["-y", "boostu-teamleader-mcp"],      "env": {        "TEAMLEADER_CLIENT_ID": "your-client-id",        "TEAMLEADER_CLIENT_SECRET": "your-client-secret",        "TEAMLEADER_REFRESH_TOKEN": "your-refresh-token"      }    }  }}

Claude Code

Add to your project's .mcp.json or ~/.claude/mcp.json:

json
{  "mcpServers": {    "teamleader": {      "command": "npx",      "args": ["-y", "boostu-teamleader-mcp"],      "env": {        "TEAMLEADER_CLIENT_ID": "your-client-id",        "TEAMLEADER_CLIENT_SECRET": "your-client-secret",        "TEAMLEADER_REFRESH_TOKEN": "your-refresh-token"      }    }  }}

Cursor

Add to .cursor/mcp.json in your project root (or the global ~/.cursor/mcp.json):

json
{  "mcpServers": {    "teamleader": {      "command": "npx",      "args": ["-y", "boostu-teamleader-mcp"],      "env": {        "TEAMLEADER_CLIENT_ID": "your-client-id",        "TEAMLEADER_CLIENT_SECRET": "your-client-secret",        "TEAMLEADER_REFRESH_TOKEN": "your-refresh-token"      }    }  }}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "teamleader": {      "command": "npx",      "args": ["-y", "boostu-teamleader-mcp"],      "env": {        "TEAMLEADER_CLIENT_ID": "your-client-id",        "TEAMLEADER_CLIENT_SECRET": "your-client-secret",        "TEAMLEADER_REFRESH_TOKEN": "your-refresh-token"      }    }  }}

🔐 Authentication

You need three env vars: TEAMLEADER_CLIENT_ID, TEAMLEADER_CLIENT_SECRET, and TEAMLEADER_REFRESH_TOKEN. Obtain them by registering an integration in the Teamleader Marketplace / Developer portal and completing the OAuth2 authorization flow.

Teamleader rotates the refresh token on every API call. Set TEAMLEADER_TOKEN_STORE to a writable file path so the server can persist the latest token between restarts — without it the token in your config will go stale after the first restart.

For the full step-by-step walkthrough (authorize URL, code exchange, helper scripts) see docs/AUTHENTICATION.md.


⚙️ Configuration

Environment variables

NameRequiredDescription
TEAMLEADER_CLIENT_IDYesOAuth2 client ID from your Teamleader integration
TEAMLEADER_CLIENT_SECRETYesOAuth2 client secret from your Teamleader integration
TEAMLEADER_REFRESH_TOKENYesInitial refresh token obtained from the OAuth2 authorization flow
TEAMLEADER_TOKEN_STORENoPath to a writable file where the server persists the rotated refresh token (e.g. /var/run/teamleader-token). Strongly recommended in production.
TEAMLEADER_TOOLSNoComma-separated list of tool group keys to enable. When unset, all 21 groups are loaded.

Selective tool groups

Use TEAMLEADER_TOOLS to limit which tool groups are registered. This is useful when you want to keep the assistant's tool list small or restrict access to certain areas of Teamleader.

bash
TEAMLEADER_TOOLS=deals,quotations,products

Full list of group keys:

KeyWhat it covers
contactsContacts CRUD
companiesCompanies CRUD
dealsDeals / opportunities
tasksTasks
eventsCalendar events
invoicesInvoices (create, book, send, pay, download)
quotationsQuotations (create, update, send, accept)
productsProduct catalog and price lists
referenceDeal phases, tax rates, payment terms, etc.
orgUsers, teams, departments
customFieldsCustom field definitions
creditNotesCredit notes
subscriptionsRecurring subscriptions
projectsProjects and milestones
timeTrackingTime log entries and live timers
activitiesCalls and meetings
ticketsSupport tickets
tagsAdd/remove tags on contacts and companies
notesNotes on any subject
filesFile list, download, upload
webhooksWebhook registration

🧰 Available Tools

Contacts

ToolDescription
teamleader_list_contactsList contacts from Teamleader Focus with optional filtering and pagination
teamleader_get_contactGet detailed information about a specific contact
teamleader_create_contactCreate a new contact in Teamleader Focus
teamleader_update_contactUpdate an existing contact in Teamleader Focus
teamleader_link_contact_to_companyLink a contact to a company, optionally with position and decision maker flag
teamleader_unlink_contact_from_companyUnlink a contact from a company in Teamleader Focus
teamleader_update_contact_company_linkUpdate the position or decision maker flag on an existing contact-company link

Companies

ToolDescription
teamleader_list_companiesList companies from Teamleader Focus with optional filtering and pagination
teamleader_get_companyGet detailed information about a specific company
teamleader_create_companyCreate a new company in Teamleader Focus
teamleader_update_companyUpdate a company: name, VAT number, addresses, language, price list, marketing consent and more

Deals

ToolDescription
teamleader_list_dealsList deals/opportunities from Teamleader Focus with optional filtering and pagination
teamleader_get_dealGet detailed information about a specific deal
teamleader_create_dealCreate a new deal/opportunity in Teamleader Focus
teamleader_update_dealUpdate an existing deal in Teamleader Focus

Tasks

ToolDescription
teamleader_list_tasksList tasks from Teamleader Focus with optional filtering and pagination
teamleader_create_taskCreate a new task in Teamleader Focus

Events

ToolDescription
teamleader_list_eventsList calendar events from Teamleader Focus with optional filtering and pagination
teamleader_get_eventGet detailed information about a specific event
teamleader_create_eventCreate a new calendar event in Teamleader Focus

Invoices

ToolDescription
teamleader_list_invoicesList invoices from Teamleader Focus with optional filtering and pagination
teamleader_get_invoiceGet detailed information about a specific invoice
teamleader_create_invoiceCreate a new draft invoice in Teamleader Focus
teamleader_invoices_bookBook a draft invoice into accounting and assign it a number
teamleader_invoices_sendSend an invoice by email to the specified recipients
teamleader_invoices_register_paymentRegister a payment against an invoice
teamleader_invoices_downloadGet a temporary download URL for an invoice in the specified format

Quotations

ToolDescription
teamleader_quotations_listList quotations, optionally filtered by deal id
teamleader_quotations_infoGet a single quotation by id, optionally with its expiry (valid-until) settings
teamleader_quotations_createCreate a quotation on a deal: line items and/or text, name, valid-until date
teamleader_quotations_updateUpdate a quotation: line items, text, name, or move its valid-until date (expiry)
teamleader_quotations_acceptAccept a quotation (marks it accepted — hard to undo)
teamleader_quotations_sendEmail a quotation with your own subject and message (cc, bcc, sender, attachments, language); #LINK becomes the signing link

Products

ToolDescription
teamleader_products_listList products, optionally filtered by search term
teamleader_products_infoGet a single product by id
teamleader_product_categories_listList product categories
teamleader_price_lists_listList price lists
teamleader_units_of_measure_listList units of measure

Reference Data

ToolDescription
teamleader_deal_phases_listList deal phases
teamleader_deal_pipelines_listList deal pipelines
teamleader_deal_sources_listList deal sources
teamleader_lost_reasons_listList lost reasons for deals
teamleader_tax_rates_listList tax rates
teamleader_payment_terms_listList payment terms
teamleader_withholding_tax_rates_listList withholding tax rates

Organisation

ToolDescription
teamleader_users_listList users, optionally filtered by search term
teamleader_users_infoGet a single user by id
teamleader_users_meGet the currently authenticated user
teamleader_teams_listList teams
teamleader_departments_listList departments

Custom Fields

ToolDescription
teamleader_custom_field_definitions_listList custom field definitions
teamleader_custom_field_definitions_infoGet a single custom field definition by id

Credit Notes

ToolDescription
teamleader_credit_notes_listList credit notes, optionally filtered by invoice or department
teamleader_credit_notes_infoGet a single credit note by id

Subscriptions

ToolDescription
teamleader_subscriptions_listList subscriptions, optionally filtered by customer
teamleader_subscriptions_infoGet a single subscription by id
teamleader_subscriptions_createCreate a new subscription (starts recurring invoicing for the customer)
teamleader_subscriptions_updateUpdate a subscription's title
teamleader_subscriptions_deactivateDeactivate a subscription (stops future invoicing)

Projects

ToolDescription
teamleader_projects_listList projects, optionally filtered by search term or customer
teamleader_projects_infoGet a single project by id
teamleader_projects_createCreate a new project for a customer
teamleader_milestones_listList milestones, optionally filtered by project
teamleader_milestones_createCreate a milestone on a project

Time Tracking

ToolDescription
teamleader_time_tracking_listList time tracking entries, optionally filtered by user
teamleader_time_tracking_addAdd a time tracking entry
teamleader_time_tracking_updateUpdate a time tracking entry's duration or description
teamleader_timer_startStart a running timer
teamleader_timer_stopStop a running timer and create a time tracking entry

Activities (Calls & Meetings)

ToolDescription
teamleader_calls_listList calls, optionally filtered by customer
teamleader_calls_createCreate a call activity
teamleader_calls_completeMark a call as completed
teamleader_meetings_listList meetings
teamleader_meetings_createSchedule a meeting
teamleader_meetings_completeMark a meeting as completed

Tickets

ToolDescription
teamleader_tickets_listList support tickets, optionally filtered by customer or status
teamleader_tickets_infoGet a single support ticket by id
teamleader_tickets_createCreate a new support ticket for a customer
teamleader_tickets_updateUpdate a ticket's subject or status
teamleader_tickets_add_messageAdd a reply/message to a ticket thread
teamleader_ticket_status_listList all available ticket statuses

Tags

ToolDescription
teamleader_contacts_add_tagsAdd one or more tags to a contact
teamleader_contacts_remove_tagsRemove one or more tags from a contact
teamleader_companies_add_tagsAdd one or more tags to a company
teamleader_companies_remove_tagsRemove one or more tags from a company

Notes

ToolDescription
teamleader_notes_listList notes linked to a subject (contact, company, deal, etc.)
teamleader_notes_createCreate a note linked to a subject

Files

ToolDescription
teamleader_files_listList files linked to a subject (contact, company, deal, etc.)
teamleader_files_downloadGet a temporary download URL for a file by its ID
teamleader_files_uploadInitiate a two-step file upload and return the upload URL

Webhooks

ToolDescription
teamleader_webhooks_listList registered webhooks
teamleader_webhooks_registerRegister a webhook URL for the given event types
teamleader_webhooks_unregisterUnregister a webhook URL for the given event types

💬 Example Prompts

Create a quotation for deal <id> with two line items: 5 hours of consulting at €150/h and a one-time setup fee of €500.
Move the valid-until date of quotation <id> to the end of next month, then email the customer a reminder in Dutch with the signing link.
Book the draft invoice <id> into accounting and then send it to the customer.
Register a €1 200 payment against invoice <id> received today via bank transfer.
Log 2.5 hours on project <id> for user <user_id> with the note "API integration work".
Start a timer for me right now — I'm working on the BoostU onboarding project.
Open a support ticket for company <id>: subject "Login not working", priority high.
What deal phase IDs do we have in pipeline <id>? I need to move deal <id> to the "Proposal sent" phase.
List all products in the "Hosting" category and their prices.
Create a monthly subscription for company <id>: product <product_id>, quantity 1, starting next month.
Show me all open deals with their current phases and tell me which ones haven't moved in the last 30 days.

🐳 Docker

bash
docker run --rm \  -e TEAMLEADER_CLIENT_ID=your-client-id \  -e TEAMLEADER_CLIENT_SECRET=your-client-secret \  -e TEAMLEADER_REFRESH_TOKEN=your-refresh-token \  -e TEAMLEADER_TOKEN_STORE=/data/teamleader-token \  -v /var/run/teamleader:/data \  ghcr.io/boostuagency/boostu-teamleader-mcp

🛠️ Development

bash
# Clone and installgit clone https://github.com/boostuagency/boostu-teamleader-mcp.gitcd boostu-teamleader-mcpnpm install
# Run in development mode (no build step required)npm run dev
# Buildnpm run build
# Run testsnpm test
# Type-check onlynpm run typecheck

🏗️ Architecture

The core of the server is createServer in src/server.ts, which is transport-agnostic — it takes a TeamleaderClient and registers the enabled tool groups, returning a plain McpServer instance that the entry point (src/index.ts) wires to a StdioServerTransport. Tool logic lives in per-domain modules under src/tools/, each following a consistent try / respond / catch / respondError pattern using shared helpers in src/lib/. OAuth2 token acquisition and rotation are handled entirely in src/api/auth.ts, transparent to the rest of the codebase. A hosted, multi-tenant edition of this server is available at teamleader-mcp.boostu.be.


✅ Endpoint Verification

Most read endpoints (*.list, *.info) have been live-verified against the Teamleader Focus API. Several write and action endpoints (e.g. subscriptions.create, projects.create, files.upload) are implemented from the official documentation but have not been tested against a live account with the relevant module active. If an endpoint name is wrong, the call will fail with a clear HTTP error message rather than silently misbehaving. The full endpoint manifest and verification status are documented in docs/teamleader-endpoints.md.


🤝 Contributing

See CONTRIBUTING.md for development setup, commit conventions, and instructions on adding new tool groups.


🔒 Security

Report security vulnerabilities to [email protected] — do not open a public issue. See SECURITY.md for the disclosure policy. Never commit .env files or .teamleader-token to version control; both are listed in .gitignore.


⚖️ Disclaimer

This is an independent, community-built integration. It is not affiliated with, endorsed by, or sponsored by Teamleader NV. "Teamleader" and "Teamleader Focus" are trademarks of Teamleader NV and are used here only to describe compatibility. You are responsible for your own use of the Teamleader API under Teamleader's terms.


📄 License

MIT License — Copyright (c) 2026 BoostU Agency. See NOTICE for upstream attribution.

来源:README.md,提交 6097220

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v2.1.4最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分