Personal connectors support multiple authentication methods depending on the service:
Most services use API keys for authentication.
Example (ClickUp):
{
"credentials": {
"apiKey": "pk_12345678_ABCDEFGHIJKLMNOP"
}
}Example (GitHub):
{
"credentials": {
"token": "ghp_abcdefghijklmnopqrstuvwxyz123456"
}
}Some services require OAuth 2.0 authentication (coming soon).
Example (Microsoft Teams):
{
"credentials": {
"accessToken": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"refreshToken": "0.AXEA...",
"expiresAt": "2025-10-08T10:00:00Z"
}
}Basic authentication for certain services.
Example (Jira):
{
"credentials": {
"email": "user@example.com",
"apiToken": "ATATT3xFfGF0..."
}
}For custom MCP servers, you can provide any credential format:
{
"credentials": {
"customKey": "value",
"anotherKey": "value"
}
}When you create or update a configuration, Freddy automatically validates your credentials:
- Format Check - Ensures credentials are properly formatted
- Live Test - Connects to the service and tests authentication
- Permission Check - Verifies credentials have required permissions (where applicable)
If credentials are valid:
{
"id": "pconf_abc123",
"connectorId": "github",
"name": "My GitHub",
"healthStatus": "healthy",
"enabled": true,
...
}If credentials are invalid:
{
"error": {
"message": "Failed to validate credentials for github: 401 Unauthorized - Invalid token. Please check your credentials and try again.",
"type": "validation_error",
"code": "invalid_credentials"
}
}Common error messages:
Invalid token- Token is incorrect or expiredInsufficient permissions- Token lacks required scopesServer unreachable- Service is down or URL is incorrectAuthentication failed- Username/password is wrong
- Go to GitHub Settings → Developer Settings → Personal Access Tokens
- Click "Generate new token (classic)"
- Give your token a descriptive name (e.g., "Freddy AI Integration")
- Select scopes:
- ✅
repo- Full control of private repositories - ✅
read:org- Read organization data - ✅
workflow- Update GitHub Actions workflows
- ✅
- Click "Generate token"
- Copy the token immediately (you won't see it again)
Token format: ghp_ followed by 36 characters
- Go to ClickUp Settings → Apps
- Scroll to "API Token" section
- Click "Generate" (or "Regenerate" if you already have one)
- Copy your API token
Token format: pk_ followed by numbers and letters
- Go to Atlassian Account Settings
- Click "Create API token"
- Give it a label (e.g., "Freddy AI")
- Click "Create"
- Copy the token
Note: You'll also need your Atlassian account email address.
OAuth integration for Teams is coming soon. You'll be able to authenticate through a web flow.
Never hardcode credentials in your application:
# .env file
GITHUB_TOKEN=ghp_your_token_here
CLICKUP_API_KEY=pk_your_key_hereimport os
credentials = {
"token": os.getenv("GITHUB_TOKEN")
}Only grant the permissions your integration needs:
GitHub:
- ❌ Don't use:
admin:org,delete_repo - ✅ Use:
repo,read:org
ClickUp:
- Request only the workspace access you need
Update your credentials periodically:
# Update credentials via API
curl -X PATCH https://api.freddy.aitronos.com/v1/personal-connectors/configurations/{config_id} \
-H "api-key: $FREDDY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"credentials": {
"token": "ghp_new_token_here"
}
}'Check your connector usage regularly:
curl https://api.freddy.aitronos.com/v1/personal-connectors/configurations/{config_id}/usage \
-H "api-key: $FREDDY_API_KEY"Delete configurations you no longer use:
curl -X DELETE https://api.freddy.aitronos.com/v1/personal-connectors/configurations/{config_id} \
-H "api-key: $FREDDY_API_KEY"All credentials are encrypted at rest using Fernet symmetric encryption:
- ✅ Credentials encrypted before database storage
- ✅ Decrypted only when needed for API calls
- ✅ Never returned in API responses
- ✅ Encrypted in logs and audit trails
Credentials are scoped to your user account or API key:
- ✅ Only you can access your credentials
- ✅ Other users cannot see your configurations
- ✅ Organization admins cannot view credentials
- ✅ Freddy staff cannot access credentials
All credential operations are logged:
- ✅ Configuration creation
- ✅ Credential updates
- ✅ Tool executions
- ✅ Failed authentication attempts
Problem: Credentials are rejected during validation
Solutions:
- Check token format - Ensure you copied the entire token
- Verify token is active - Check if token was revoked
- Check permissions - Ensure token has required scopes
- Test manually - Try using the token directly with the service API
Example (GitHub):
# Test your GitHub token
curl -H "Authorization: token ghp_your_token" https://api.github.com/userProblem: Cannot connect to the MCP server
Solutions:
- Check service status - Is the service down?
- Verify URL - Is the server URL correct?
- Check network - Are you behind a firewall?
- Try later - Service might be temporarily unavailable
Problem: Token lacks required permissions
Solutions:
- Update token scopes - Add missing permissions
- Generate new token - Create token with correct scopes
- Check service settings - Verify account has access
Problem: Configuration created but marked unhealthy
Solutions:
- Check last error - View the
lastErrorfield - Test connection - Use the
/testendpoint - Refresh tools - Try the
/refreshendpoint - Update credentials - Credentials may have expired
# Check configuration status
curl https://api.freddy.aitronos.com/v1/personal-connectors/configurations/{config_id} \
-H "api-key: $FREDDY_API_KEY"
# Test connection
curl -X POST https://api.freddy.aitronos.com/v1/personal-connectors/configurations/{config_id}/test \
-H "api-key: $FREDDY_API_KEY"