Servidor MCP de FreeAgent
Un servidor MCP (Protocolo de Contexto de Modelo) de Claude para gestionar los registros de tiempo y los temporizadores de FreeAgent. Este servidor permite a Claude interactuar con su cuenta de FreeAgent para registrar el tiempo, administrar los temporizadores y gestionar las operaciones de registro de tiempo.
Características
Listar y filtrar hojas de tiempo con datos anidados
Crear nuevos timeslips
Actualizar los registros de tiempo existentes
Temporizadores de inicio y parada
Eliminar resbalones de tiempo
Actualización automática del token OAuth
Manejo integral de errores
Compatibilidad con Docker
Related MCP server: MCP Claude Code
Prerrequisitos
Node.js 18+ (para uso directo de Node.js)
Docker y Docker Compose (para uso en contenedores)
Una cuenta FreeAgent con acceso a la API
Credenciales de OAuth desde el panel de desarrolladores de FreeAgent
Instalación
Opción 1: Instalación directa de Node.js
Clonar el repositorio:
git clone https://github.com/yourusername/freeagent-mcp.git
cd freeagent-mcpInstalar dependencias:
npm installObtenga sus tokens OAuth:
# Set your FreeAgent credentials
export FREEAGENT_CLIENT_ID="your_client_id"
export FREEAGENT_CLIENT_SECRET="your_client_secret"
# Run the OAuth setup script
node scripts/get-oauth-tokens.jsOpción 2: Instalación de Docker
Clonar el repositorio:
git clone https://github.com/yourusername/freeagent-mcp.git
cd freeagent-mcpCrea tu archivo de entorno:
cp .env.example .env
# Edit .env with your FreeAgent credentialsConstruir imagen de Docker:
docker build -t freeagent-mcp .Configuración
Agregue el servidor a su configuración de MCP (normalmente en %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json ):
Para la instalación de Node.js:
{
"mcpServers": {
"freeagent": {
"command": "node",
"args": ["path/to/freeagent-mcp/build/index.js"],
"env": {
"FREEAGENT_CLIENT_ID": "your_client_id",
"FREEAGENT_CLIENT_SECRET": "your_client_secret",
"FREEAGENT_ACCESS_TOKEN": "your_access_token",
"FREEAGENT_REFRESH_TOKEN": "your_refresh_token"
},
"disabled": false,
"autoApprove": []
}
}
}Para la instalación de Docker:
{
"mcpServers": {
"freeagent": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "FREEAGENT_CLIENT_ID",
"-e", "FREEAGENT_CLIENT_SECRET",
"-e", "FREEAGENT_ACCESS_TOKEN",
"-e", "FREEAGENT_REFRESH_TOKEN",
"freeagent-mcp"
],
"env": {
"FREEAGENT_CLIENT_ID": "your_client_id",
"FREEAGENT_CLIENT_SECRET": "your_client_secret",
"FREEAGENT_ACCESS_TOKEN": "your_access_token",
"FREEAGENT_REFRESH_TOKEN": "your_refresh_token"
},
"disabled": false,
"autoApprove": []
}
}
}Uso
Una vez configurado, Claude puede utilizar las siguientes herramientas:
Lista de resbalones de tiempo
{
"from_date": "2024-01-01", // Start date (YYYY-MM-DD)
"to_date": "2024-03-04", // End date (YYYY-MM-DD)
"updated_since": "2024-03-04T12:00:00Z", // ISO datetime
"view": "all", // "all", "unbilled", or "running"
"user": "https://api.freeagent.com/v2/users/123",
"task": "https://api.freeagent.com/v2/tasks/456",
"project": "https://api.freeagent.com/v2/projects/789",
"nested": true // Include nested resources
}Crear Timeslip
{
"task": "https://api.freeagent.com/v2/tasks/123",
"user": "https://api.freeagent.com/v2/users/456",
"project": "https://api.freeagent.com/v2/projects/789",
"dated_on": "2024-03-04",
"hours": "1.5",
"comment": "Optional comment"
}Controles del temporizador
// Start timer
{
"id": "123"
}
// Stop timer
{
"id": "123"
}Desarrollo
Desarrollo con Node.js
# Build the project
npm run build
# Watch for changes
npm run watch
# Run tests (when implemented)
npm testDesarrollo de Docker
# Build the Docker image
docker build -t freeagent-mcp .Contribuyendo
Bifurcar el repositorio
Crea tu rama de funciones (
git checkout -b feature/amazing-feature)Confirme sus cambios (
git commit -am 'Add some amazing feature')Empujar a la rama (
git push origin feature/amazing-feature)Abrir una solicitud de extracción
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
FreeAgent por su excelente documentación API
El equipo de Claude para el SDK de MCP