MCP server for ConnectWise PSA — tickets, time, dispatch, companies, and invoicing for MSPs
接入配置
选择客户端,复制配置,再按项目文档补齐环境变量。
claude mcp add connectwise-psa --env CW_SITE='<CW_SITE>' --env CW_COMPANY_ID='<CW_COMPANY_ID>' --env CW_CLIENT_ID='<CW_CLIENT_ID>' --env CW_PUBLIC_KEY='<CW_PUBLIC_KEY>' --env CW_PRIVATE_KEY='<CW_PRIVATE_KEY>' --env CW_DB_PASSWORD='<CW_DB_PASSWORD>' -- npx -y mcp-connectwise-psa~/.codex/config.toml
[mcp_servers.connectwise-psa]
command = "npx"
args = ["-y", "mcp-connectwise-psa"]
env = { CW_SITE = "<CW_SITE>", CW_COMPANY_ID = "<CW_COMPANY_ID>", CW_CLIENT_ID = "<CW_CLIENT_ID>", CW_PUBLIC_KEY = "<CW_PUBLIC_KEY>", CW_PRIVATE_KEY = "<CW_PRIVATE_KEY>", CW_DB_PASSWORD = "<CW_DB_PASSWORD>" }
# codex mcp add connectwise-psa --env CW_SITE='<CW_SITE>' --env CW_COMPANY_ID='<CW_COMPANY_ID>' --env CW_CLIENT_ID='<CW_CLIENT_ID>' --env CW_PUBLIC_KEY='<CW_PUBLIC_KEY>' --env CW_PRIVATE_KEY='<CW_PRIVATE_KEY>' --env CW_DB_PASSWORD='<CW_DB_PASSWORD>' -- npx -y mcp-connectwise-psa~/.cursor/mcp.json
{
"mcpServers": {
"connectwise-psa": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<CW_SITE>",
"CW_COMPANY_ID": "<CW_COMPANY_ID>",
"CW_CLIENT_ID": "<CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<CW_PRIVATE_KEY>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"connectwise-psa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<CW_SITE>",
"CW_COMPANY_ID": "<CW_COMPANY_ID>",
"CW_CLIENT_ID": "<CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<CW_PRIVATE_KEY>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"connectwise-psa": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<CW_SITE>",
"CW_COMPANY_ID": "<CW_COMPANY_ID>",
"CW_CLIENT_ID": "<CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<CW_PRIVATE_KEY>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"connectwise-psa": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<CW_SITE>",
"CW_COMPANY_ID": "<CW_COMPANY_ID>",
"CW_CLIENT_ID": "<CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<CW_PRIVATE_KEY>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"connectwise-psa": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<CW_SITE>",
"CW_COMPANY_ID": "<CW_COMPANY_ID>",
"CW_CLIENT_ID": "<CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<CW_PRIVATE_KEY>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>"
}
}
}
}需要的环境变量
CW_SITECW_COMPANY_IDCW_CLIENT_IDCW_PUBLIC_KEYCW_PRIVATE_KEYCW_DB_PASSWORD
把占位值换成你自己的密钥;不要把密钥提交到代码仓库。