Lets Claude work with a FreeAgent account to track time, manage timers and handle timeslips.
接入配置
选择客户端,复制配置,再按项目文档补齐环境变量。
claude mcp add freeagent --env FREEAGENT_ACCESS_TOKEN='<FREEAGENT_ACCESS_TOKEN>' --env FREEAGENT_CLIENT_ID='<FREEAGENT_CLIENT_ID>' --env FREEAGENT_CLIENT_SECRET='<FREEAGENT_CLIENT_SECRET>' --env FREEAGENT_REFRESH_TOKEN='<FREEAGENT_REFRESH_TOKEN>' -- node path/to/freeagent-mcp/build/index.js~/.codex/config.toml
[mcp_servers.freeagent]
command = "node"
args = ["path/to/freeagent-mcp/build/index.js"]
env = { FREEAGENT_ACCESS_TOKEN = "<FREEAGENT_ACCESS_TOKEN>", FREEAGENT_CLIENT_ID = "<FREEAGENT_CLIENT_ID>", FREEAGENT_CLIENT_SECRET = "<FREEAGENT_CLIENT_SECRET>", FREEAGENT_REFRESH_TOKEN = "<FREEAGENT_REFRESH_TOKEN>" }
# codex mcp add freeagent --env FREEAGENT_ACCESS_TOKEN='<FREEAGENT_ACCESS_TOKEN>' --env FREEAGENT_CLIENT_ID='<FREEAGENT_CLIENT_ID>' --env FREEAGENT_CLIENT_SECRET='<FREEAGENT_CLIENT_SECRET>' --env FREEAGENT_REFRESH_TOKEN='<FREEAGENT_REFRESH_TOKEN>' -- node path/to/freeagent-mcp/build/index.js~/.cursor/mcp.json
{
"mcpServers": {
"freeagent": {
"command": "node",
"args": [
"path/to/freeagent-mcp/build/index.js"
],
"env": {
"FREEAGENT_ACCESS_TOKEN": "<FREEAGENT_ACCESS_TOKEN>",
"FREEAGENT_CLIENT_ID": "<FREEAGENT_CLIENT_ID>",
"FREEAGENT_CLIENT_SECRET": "<FREEAGENT_CLIENT_SECRET>",
"FREEAGENT_REFRESH_TOKEN": "<FREEAGENT_REFRESH_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"freeagent": {
"type": "stdio",
"command": "node",
"args": [
"path/to/freeagent-mcp/build/index.js"
],
"env": {
"FREEAGENT_ACCESS_TOKEN": "<FREEAGENT_ACCESS_TOKEN>",
"FREEAGENT_CLIENT_ID": "<FREEAGENT_CLIENT_ID>",
"FREEAGENT_CLIENT_SECRET": "<FREEAGENT_CLIENT_SECRET>",
"FREEAGENT_REFRESH_TOKEN": "<FREEAGENT_REFRESH_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"freeagent": {
"command": "node",
"args": [
"path/to/freeagent-mcp/build/index.js"
],
"env": {
"FREEAGENT_ACCESS_TOKEN": "<FREEAGENT_ACCESS_TOKEN>",
"FREEAGENT_CLIENT_ID": "<FREEAGENT_CLIENT_ID>",
"FREEAGENT_CLIENT_SECRET": "<FREEAGENT_CLIENT_SECRET>",
"FREEAGENT_REFRESH_TOKEN": "<FREEAGENT_REFRESH_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"freeagent": {
"command": "node",
"args": [
"path/to/freeagent-mcp/build/index.js"
],
"env": {
"FREEAGENT_ACCESS_TOKEN": "<FREEAGENT_ACCESS_TOKEN>",
"FREEAGENT_CLIENT_ID": "<FREEAGENT_CLIENT_ID>",
"FREEAGENT_CLIENT_SECRET": "<FREEAGENT_CLIENT_SECRET>",
"FREEAGENT_REFRESH_TOKEN": "<FREEAGENT_REFRESH_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"freeagent": {
"command": "node",
"args": [
"path/to/freeagent-mcp/build/index.js"
],
"env": {
"FREEAGENT_ACCESS_TOKEN": "<FREEAGENT_ACCESS_TOKEN>",
"FREEAGENT_CLIENT_ID": "<FREEAGENT_CLIENT_ID>",
"FREEAGENT_CLIENT_SECRET": "<FREEAGENT_CLIENT_SECRET>",
"FREEAGENT_REFRESH_TOKEN": "<FREEAGENT_REFRESH_TOKEN>"
}
}
}
}需要的环境变量
FREEAGENT_ACCESS_TOKENFREEAGENT_CLIENT_IDFREEAGENT_CLIENT_SECRETFREEAGENT_REFRESH_TOKEN
把占位值换成你自己的密钥;不要把密钥提交到代码仓库。