Log in

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://api-docs.kitsu.cloud/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "Kitsu API MCP server": {
    "url": "https://api-docs.kitsu.cloud/mcp"
  }
}

Close
POST /auth/login

Log in a user and get authentication tokens. The email field accepts the email address or the desktop login of the user. Desktop tools that do not know the email address use the desktop login. If the user has two-factor authentication, give one second factor. The organisation has the chat tokens only for an administrator.

application/json

Body Required

  • email string Required

    Email address or desktop login of the user

    Minimum length is 1.

  • password string(password)

    Password of the user

  • totp string

    TOTP code from the authenticator app

  • email_otp string

    One-time password that the user got by email

  • fido_authentication_response object

    Response of the FIDO device to the challenge

  • recovery_code string

    One recovery code of the user

Responses

  • 200

    The login is successful. If the instance enforces two-factor authentication and the user has not set it up, the body has two_factor_authentication_required and the tokens only give access to the authentication routes until the setup is done.

  • 400

    The login failed. The body tells the cause with the flags default_password, missing_OTP, wrong_OTP or too_many_failed_login_attemps. A wrong email and a wrong password give the same answer.

  • 401

    The user is inactive. The body has the flag unactive.

  • 409

    The authentication strategy is not correctly configured

  • 500

    The database is not available, or a server error occurred

POST /auth/login
curl -X POST "http://api.example.com/auth/login" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "admin@example.com",
  "password": "mysecretpassword",
  "totp": 123456,
  "email_otp": 123456,
  "fido_authentication_response": {},
  "recovery_code": "ABCD-EFGH-IJKL-MNOP"
}'
import requests

url = "http://api.example.com/auth/login"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Accept": "application/json",
    "Content-Type": "application/json"
}
params = {}
payload = {
    "email": "admin@example.com",
    "password": "mysecretpassword",
    "totp": 123456,
    "email_otp": 123456,
    "fido_authentication_response": {},
    "recovery_code": "ABCD-EFGH-IJKL-MNOP"
}

response = requests.post(
    url,
    headers=headers,
    params=params,
    json=payload
)

response.raise_for_status()

if response.content:
    print(response.json())
Request examples
{
  "email": "admin@example.com",
  "password": "********",
  "totp": "123456",
  "email_otp": "123456",
  "fido_authentication_response": {},
  "recovery_code": "ABCD-EFGH-IJKL-MNOP"
}