BokaMera.API.Host

<back to all web services

GetMcpUsage

Requires Authentication
The following routes are available for this service:
GET/assistant/mcp/usageGet the public MCP server token usage and limit for a companyReturns how many tokens the company has consumed in the current rolling window through the public MCP server it connects to external AI clients, the configured limit and whether the company is still within budget. Metered separately from the admin AI assistant. Defaults to the logged-in user's company when no CompanyId is supplied.
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using BokaMera.API.ServiceModel.Dtos;

namespace BokaMera.API.ServiceModel.Dtos
{
    public partial class AiChatUsageResponse
    {
        ///<summary>
        ///The company the usage applies to.
        ///</summary>
        [ApiMember(Description="The company the usage applies to.")]
        public virtual Guid CompanyId { get; set; }

        ///<summary>
        ///Tokens consumed within the current rolling window.
        ///</summary>
        [ApiMember(Description="Tokens consumed within the current rolling window.")]
        public virtual long TokensUsed { get; set; }

        ///<summary>
        ///The company's token limit for the window.
        ///</summary>
        [ApiMember(Description="The company's token limit for the window.")]
        public virtual int TokenLimit { get; set; }

        ///<summary>
        ///Tokens remaining before the limit is reached (never negative).
        ///</summary>
        [ApiMember(Description="Tokens remaining before the limit is reached (never negative).")]
        public virtual long TokensRemaining { get; set; }

        ///<summary>
        ///True while the company is still below its token limit.
        ///</summary>
        [ApiMember(Description="True while the company is still below its token limit.")]
        public virtual bool IsWithinBudget { get; set; }

        ///<summary>
        ///Length of the rolling usage window, in days.
        ///</summary>
        [ApiMember(Description="Length of the rolling usage window, in days.")]
        public virtual int WindowDays { get; set; }

        public virtual ResponseStatus ResponseStatus { get; set; }
    }

    [ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)]
    [ValidateRequest("IsAuthenticated")]
    public partial class GetMcpUsage
        : ICompany
    {
        ///<summary>
        ///The company id. Defaults to the logged-in user's company when omitted.
        ///</summary>
        [ApiMember(DataType="string", Description="The company id. Defaults to the logged-in user's company when omitted.", ParameterType="query")]
        public virtual Guid? CompanyId { get; set; }
    }

}

C# GetMcpUsage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /assistant/mcp/usage HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<AiChatUsageResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <IsWithinBudget>false</IsWithinBudget>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <TokenLimit>0</TokenLimit>
  <TokensRemaining>0</TokensRemaining>
  <TokensUsed>0</TokensUsed>
  <WindowDays>0</WindowDays>
</AiChatUsageResponse>