FitSlot MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FitSlot MCP Serveranalyze this bioimpedance PDF and give me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FitSlot MCP Server
MCP (Model Context Protocol) server para integração com a API FitSlot, fornecendo funcionalidades de:
🎫 Gerenciamento de tickets de suporte
🤖 Chatbot com FAQs para suporte aos usuários
📊 Análise de documentos PDF de bioimpedância
🚀 Características
Gestão de Tickets
Criar novos tickets de suporte
Listar tickets por usuário e status
Atualizar tickets existentes
Fechar tickets resolvidos
Suporte via Chatbot
Busca inteligente em base de FAQs
Respostas contextualizadas com ações sugeridas
Categorização de perguntas frequentes
Suporte em português
Análise de Bioimpedância
Extração automática de dados de PDFs
Análise de composição corporal
Cálculo de IMC e métricas de saúde
Recomendações personalizadas baseadas nos dados
📋 Requisitos
Node.js 18+ ou superior
npm ou yarn
🔧 Instalação
# Clonar o repositório
git clone https://github.com/osmarsant/fitslot-mcp.git
cd fitslot-mcp
# Instalar dependências
npm install
# Compilar o projeto
npm run build⚙️ Configuração
Configure as variáveis de ambiente criando um arquivo .env na raiz do projeto:
# URL da API FitSlot
FITSLOT_API_URL=https://api.fitslot.com
# Chave de API (opcional)
FITSLOT_API_KEY=sua_chave_api_aqui
# Timeout para requisições (em ms)
FITSLOT_API_TIMEOUT=30000
# Nível de log (DEBUG, INFO, WARN, ERROR)
LOG_LEVEL=INFO🎯 Uso
Desenvolvimento
npm run devProdução
npm startComo Servidor MCP
Para usar com Claude Desktop ou outras aplicações MCP, adicione ao arquivo de configuração:
{
"mcpServers": {
"fitslot": {
"command": "node",
"args": ["/caminho/para/fitslot-mcp/dist/index.js"],
"env": {
"FITSLOT_API_URL": "https://api.fitslot.com",
"FITSLOT_API_KEY": "sua_chave_aqui"
}
}
}
}🛠️ Ferramentas Disponíveis
Tickets
create_ticket
Cria um novo ticket de suporte.
Parâmetros:
title(string): Título do ticketdescription(string): Descrição detalhada do problemapriority(enum): Prioridade -low,medium,high,urgentuserId(string): ID do usuário
list_tickets
Lista todos os tickets de um usuário.
Parâmetros:
userId(string): ID do usuáriostatus(enum, opcional): Filtrar por status -open,in_progress,resolved,closed
get_ticket
Obtém detalhes de um ticket específico.
Parâmetros:
ticketId(string): ID do ticket
update_ticket
Atualiza um ticket existente.
Parâmetros:
ticketId(string): ID do ticketstatus(enum, opcional): Novo statusdescription(string, opcional): Nova descriçãopriority(enum, opcional): Nova prioridade
close_ticket
Fecha um ticket.
Parâmetros:
ticketId(string): ID do ticket
Chatbot
ask_support
Faz uma pergunta ao suporte e recebe respostas com FAQs relacionadas.
Parâmetros:
query(string): Pergunta ou consulta do usuário
search_faqs
Busca FAQs por palavras-chave.
Parâmetros:
query(string): Termo de buscalimit(number, opcional): Número máximo de resultados (padrão: 5)
get_faq_categories
Lista todas as categorias de FAQs disponíveis.
get_faqs_by_category
Lista FAQs de uma categoria específica.
Parâmetros:
category(string): Nome da categoria
get_all_faqs
Retorna todas as FAQs disponíveis.
Análise de PDF
analyze_bioimpedance_pdf
Analisa um arquivo PDF de bioimpedância.
Parâmetros:
filePath(string): Caminho absoluto para o arquivo PDF
analyze_bioimpedance_pdf_base64
Analisa um PDF de bioimpedância a partir de dados base64.
Parâmetros:
base64Data(string): Dados do PDF codificados em base64patientId(string, opcional): ID do paciente para referência
📁 Estrutura do Projeto
fitslot-mcp/
├── src/
│ ├── index.ts # Servidor MCP principal
│ ├── services/ # Camada de serviços
│ │ ├── fitslot-api.service.ts
│ │ ├── chatbot.service.ts
│ │ └── pdf-analysis.service.ts
│ ├── tools/ # Ferramentas MCP
│ │ ├── ticket.tools.ts
│ │ ├── chatbot.tools.ts
│ │ └── pdf.tools.ts
│ ├── types/ # Definições de tipos TypeScript
│ │ └── index.ts
│ └── utils/ # Utilitários
│ ├── logger.ts
│ └── validation.ts
├── dist/ # Código compilado
├── package.json
├── tsconfig.json
└── README.md🏗️ Arquitetura
O projeto segue as melhores práticas de engenharia de software:
TypeScript: Tipagem forte e segurança em tempo de compilação
Arquitetura em camadas: Separação clara entre serviços, ferramentas e utilitários
Logging estruturado: Sistema de logs com níveis configuráveis
Validação de entrada: Validação rigorosa de todos os inputs
Tratamento de erros: Gestão robusta de erros em todas as camadas
Código limpo: Código bem documentado e fácil de manter
🔒 Segurança
Validação de todas as entradas do usuário
Sanitização de dados para prevenir injeções
Gestão segura de credenciais via variáveis de ambiente
Tratamento adequado de erros sem expor informações sensíveis
📝 Exemplos de Uso
Criar um Ticket
{
"tool": "create_ticket",
"arguments": {
"title": "Problema no agendamento",
"description": "Não consigo agendar horário para sexta-feira",
"priority": "high",
"userId": "user123"
}
}Buscar Suporte
{
"tool": "ask_support",
"arguments": {
"query": "Como faço para cancelar um agendamento?"
}
}Analisar PDF
{
"tool": "analyze_bioimpedance_pdf",
"arguments": {
"filePath": "/caminho/para/documento.pdf"
}
}🤝 Contribuindo
Contribuições são bem-vindas! Por favor:
Faça um fork do projeto
Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature)Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature')Push para a branch (
git push origin feature/MinhaFeature)Abra um Pull Request
📄 Licença
ISC
📞 Suporte
Para suporte, abra uma issue no repositório ou entre em contato através dos canais oficiais do FitSlot.
Available Tools
12 toolsanalyze_bioimpedance_pdfC
Analyze a bioimpedance PDF document and extract health metrics with recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions analysis and extraction but lacks details on what happens during processing (e.g., whether it modifies the file, requires specific permissions, has rate limits, or returns structured data). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and outcome without unnecessary words. Every part earns its place by specifying the resource, action, and result, making it appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analyzing PDFs for health data), no annotations, no output schema, and minimal parameter details, the description is incomplete. It doesn't explain what health metrics are extracted, the format of recommendations, error handling, or dependencies, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies a PDF file is needed but doesn't add meaning beyond the input schema, which has 0% description coverage. The schema only documents 'filePath' as an absolute path, and the description doesn't elaborate on file requirements (e.g., format specifics, size limits) or how the analysis works. With one parameter and low schema coverage, the description provides minimal compensation, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'analyze' and resource 'bioimpedance PDF document', along with the outcome 'extract health metrics with recommendations'. It distinguishes from sibling tools like 'analyze_bioimpedance_pdf_base64' by specifying the input format (PDF file vs. base64), but doesn't explicitly differentiate from other unrelated siblings like ticket or FAQ tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'analyze_bioimpedance_pdf_base64' (e.g., for local files vs. encoded data) or other siblings, nor does it specify prerequisites like file format requirements or when this analysis is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_bioimpedance_pdf_base64C
Analyze a bioimpedance PDF document from base64-encoded data
| Name | Required | Description | Default |
|---|---|---|---|
| base64Data | Yes | ||
| patientId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states what the tool does without detailing how it behaves. It doesn't mention whether this is a read-only analysis, if it modifies data, what the output format might be, potential errors, or any performance considerations like rate limits or processing time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality without any wasted words. It's appropriately sized for a tool with a straightforward purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of analyzing a bioimpedance PDF (which likely involves extracting and interpreting medical data), no annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't address what the analysis entails, what results to expect, or any domain-specific considerations, leaving significant gaps for an AI agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'base64-encoded data' but doesn't add meaning beyond what the input schema's parameter names imply. With 0% schema description coverage, the description fails to compensate by explaining the purpose of 'base64Data' or 'patientId', leaving the agent to guess their roles based on naming alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('analyze') and the resource ('bioimpedance PDF document from base64-encoded data'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from its sibling 'analyze_bioimpedance_pdf', which likely handles a different input format, leaving some ambiguity about when to choose one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as the sibling 'analyze_bioimpedance_pdf' or other document analysis tools. It lacks context about prerequisites, typical use cases, or any exclusions, leaving the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_supportC
Ask a support question and get helpful responses with related FAQs and suggested actions
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool returns 'helpful responses with related FAQs and suggested actions', but it doesn't clarify operational aspects like whether this is a read-only query, if it requires authentication, rate limits, or error handling. This leaves significant gaps for a tool that likely interacts with support systems.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and outcome without unnecessary words. Every part of the sentence contributes directly to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (interactive support querying), lack of annotations, no output schema, and minimal parameter semantics, the description is insufficient. It doesn't explain the response format, potential errors, or how it integrates with sibling tools, leaving the agent with incomplete information for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the schema provides no semantic details. The description adds some context by stating the parameter is for 'The user's question or support query', but this is minimal and doesn't elaborate on format, length constraints, or examples. This partial compensation aligns with a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('ask') and resource ('support question'), and it explains what the tool provides in return ('helpful responses with related FAQs and suggested actions'). However, it doesn't explicitly distinguish this tool from sibling tools like 'search_faqs' or 'create_ticket', which limits the score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'search_faqs' for FAQ lookups or 'create_ticket' for formal support requests. It lacks context about prerequisites, exclusions, or specific scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_ticketB
Close a ticket by setting its status to closed
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool performs a mutation ('close'), implying it changes data, but doesn't cover critical aspects like permissions required, whether the action is reversible, side effects (e.g., notifications sent), or error handling. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action, making it easy to parse. Every part of the sentence contributes to understanding the purpose, with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with no annotations, 1 parameter, no output schema), the description is incomplete. It lacks details on behavioral traits (e.g., permissions, reversibility), usage context, and expected outcomes. For a tool that modifies data, this minimal description leaves too many gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, but the description adds no explicit parameter information. However, with only 1 parameter, the baseline is high (4) as the tool's purpose inherently clarifies the parameter's role ('ticketId' is the ticket to close). The description doesn't add syntax or format details, but the simplicity compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('close') and resource ('a ticket'), specifying the method ('by setting its status to closed'). It distinguishes from siblings like 'create_ticket' and 'update_ticket' by focusing on closure, though it doesn't explicitly contrast with 'update_ticket' which might also modify status. The purpose is specific but could be more differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., ticket must be open), exclusions, or comparisons to siblings like 'update_ticket' (which might handle status changes more broadly). Usage is implied only by the action, with no explicit context or alternatives stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ticketC
Create a new support ticket in the FitSlot system
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | Yes | ||
| priority | Yes | ||
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Create a new support ticket,' implying a write/mutation operation, but doesn't disclose behavioral traits like whether it requires authentication, what happens on success (e.g., returns a ticket ID), error conditions, or side effects. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, clearly front-loading the core action. It's appropriately sized for the tool's purpose, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with 4 required parameters, no annotations, and no output schema, the description is incomplete. It lacks crucial details like behavioral context, parameter meanings, and expected outcomes, making it inadequate for an AI agent to use the tool effectively without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for parameters. The description adds no information about what the parameters mean beyond their names, failing to compensate for the coverage gap. For example, it doesn't explain what 'priority' levels entail or how 'userId' is obtained, leaving parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new support ticket') and the target system ('FitSlot system'), which is specific and unambiguous. It distinguishes from siblings like 'close_ticket' or 'update_ticket' by focusing on creation. However, it doesn't specify what a 'support ticket' entails beyond the basic concept, leaving some ambiguity about the resource's nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'ask_support' (which might be for queries) or 'update_ticket' (for modifications). It lacks context about prerequisites, such as whether the user must be authenticated or have specific permissions, or when creation is appropriate versus other actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_faqsB
Get all available FAQs across all categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but doesn't describe traits like whether this is a read-only operation, potential rate limits, authentication needs, or what the return format looks like (e.g., list structure, pagination). For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words, efficiently conveying the core purpose. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, no output schema), the description adequately covers the basic purpose. However, it lacks details on behavioral aspects like return format or operational constraints, which would be helpful for an agent to use it correctly. It's minimally viable but has clear gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description doesn't add parameter details, which is appropriate here. Baseline is 4 for zero parameters, as the description doesn't need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'all available FAQs across all categories', making the purpose specific and understandable. It distinguishes from sibling tools like 'get_faqs_by_category' by emphasizing 'all categories' rather than filtering. However, it doesn't explicitly contrast with 'search_faqs', which might also retrieve FAQs, leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying 'all categories', suggesting this tool is for broad retrieval without filtering. However, it doesn't explicitly state when to use this versus alternatives like 'get_faqs_by_category' (for category-specific FAQs) or 'search_faqs' (for keyword-based queries), nor does it mention prerequisites or exclusions, leaving usage context partially inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_faq_categoriesB
Get all available FAQ categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves categories but doesn't describe return format (e.g., list structure, pagination), error conditions, or performance characteristics. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for a simple tool with no parameters, making it easy to parse quickly. Every word earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate but lacks depth. It doesn't explain what 'FAQ categories' entail or how results are structured, which could help an agent use the output effectively. For a basic read tool, it meets the minimum but doesn't provide rich context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is given since the schema fully handles parameters, and the description doesn't need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('all available FAQ categories'), making the purpose immediately understandable. It distinguishes from siblings like 'get_all_faqs' (which gets FAQ items) and 'get_faqs_by_category' (which filters by category), though it doesn't explicitly mention these distinctions. The description avoids tautology by specifying what is being retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_all_faqs' or 'search_faqs'. It doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage based on tool names alone. This lack of explicit guidance reduces effectiveness in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_faqs_by_categoryB
Get all FAQs for a specific category
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but reveals minimal behavioral traits. It states it 'gets' FAQs (likely a read operation) but doesn't disclose pagination behavior, rate limits, authentication requirements, error conditions, or what happens with invalid categories. The description doesn't contradict any annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's front-loaded with the essential information and contains zero redundant or decorative language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with no annotations, no output schema, and minimal parameter documentation, the description is insufficient. It doesn't explain what constitutes a 'category', how results are returned (list format, limits), or error handling. Given the server context with multiple FAQ-related tools, more guidance on tool selection would be valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (parameter 'category' has no description in schema), but the tool description adds meaningful context by specifying 'category name to filter FAQs'. This clarifies the parameter's purpose beyond just its name, though it doesn't provide format examples, valid values, or constraints. With 1 parameter and partial compensation for the schema gap, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'FAQs' with the qualifier 'for a specific category', making the purpose unambiguous. It distinguishes from sibling 'get_all_faqs' by specifying category filtering, though it doesn't explicitly mention sibling 'search_faqs' which might offer alternative filtering approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing FAQs filtered by category, but provides no explicit guidance on when to use this versus siblings like 'search_faqs' (which might offer more flexible filtering) or 'get_all_faqs' (which retrieves all FAQs without filtering). No prerequisites, exclusions, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticketC
Get detailed information about a specific ticket
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It implies a read-only operation ('Get') but doesn't confirm safety aspects like whether it's idempotent, requires authentication, has rate limits, or what happens with invalid IDs. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a read operation with 1 parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral traits, error handling, return format, or usage context. For a tool in a set with multiple ticket-related siblings, more guidance is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds minimal value by implying a 'ticketId' parameter is needed ('about a specific ticket'), but doesn't explain format, constraints, or examples. With 1 parameter and low coverage, it partially compensates but remains vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('detailed information about a specific ticket'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_tickets' (which likely returns multiple tickets) or 'create_ticket'/'update_ticket' (which are write operations), missing full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a ticket ID), contrast with 'list_tickets' for bulk retrieval, or specify use cases like viewing ticket details after creation. This leaves the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ticketsC
List all tickets for a user, optionally filtered by status
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool lists tickets but doesn't disclose behavioral traits such as whether it requires authentication, returns paginated results, has rate limits, or what happens if the user ID is invalid. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It front-loads the core purpose ('List all tickets for a user') and adds optional filtering as a concise modifier, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It lacks details on authentication, error handling, return format, and usage context compared to siblings. For a tool with two parameters and no structured support, this minimal description doesn't provide enough information for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions filtering by status, which aligns with the 'status' parameter, but doesn't explain the 'userId' parameter or provide additional context like format examples or constraints. This adds some value but doesn't fully cover the two parameters, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('tickets for a user'), making the purpose specific and understandable. However, it doesn't distinguish this tool from sibling tools like 'get_ticket' or 'search_faqs' that might also retrieve ticket information, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_ticket' (for a single ticket) or 'search_faqs' (for FAQs). It mentions optional filtering by status but doesn't explain when this filtering is appropriate or what happens without it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_faqsC
Search for FAQs based on keywords or questions
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention whether this is a read-only operation, what the response format might be, potential rate limits, authentication needs, or error handling. The description is minimal and lacks essential operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized for a simple search tool and front-loads the core action. However, it could be more structured by explicitly separating purpose from parameters or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage, no annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain return values, error conditions, or how results are ranked/filtered. For a search tool in a FAQ system with alternatives, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but adds minimal value. It mentions 'keywords or questions' which loosely relates to the 'query' parameter but doesn't explain syntax, format, or examples. The 'limit' parameter is not addressed at all. The description fails to provide meaningful semantics beyond what's inferred from parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search for FAQs based on keywords or questions' clearly states the verb (search) and resource (FAQs), but it's vague about scope and doesn't distinguish from sibling tools like 'get_all_faqs' or 'get_faqs_by_category'. It specifies the search mechanism (keywords/questions) but lacks precision about what constitutes an FAQ in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_all_faqs' or 'get_faqs_by_category'. The description implies usage for keyword-based searches but doesn't mention exclusions, prerequisites, or comparative scenarios with sibling tools, leaving the agent without contextual decision-making help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ticketC
Update an existing ticket (status, description, or priority)
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | ||
| status | No | ||
| description | No | ||
| priority | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'update' implies mutation, it doesn't specify whether this requires specific permissions, if changes are reversible, what happens when only some fields are provided, or error conditions. The description mentions what can be updated but not how the update behaves or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point. It uses minimal words to convey the core functionality. However, it could be slightly more structured by front-loading the most critical information about the required ticketId parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters, 0% schema description coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain the required ticketId parameter, provides minimal behavioral context, and offers no guidance on usage. The description should do much more to compensate for the lack of structured documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 4 parameters have descriptions in the schema. The description only mentions three parameters (status, description, priority) but omits the required 'ticketId' parameter entirely. This leaves the most critical parameter undocumented and provides minimal semantic context for the optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and resource 'existing ticket' with specific fields mentioned (status, description, priority). It distinguishes from sibling tools like 'create_ticket' and 'close_ticket' by focusing on modifying existing tickets rather than creating new ones or closing them. However, it doesn't explicitly differentiate from 'get_ticket' or 'list_tickets' beyond the update action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like needing an existing ticket ID, nor does it explain when to use 'update_ticket' versus 'close_ticket' for status changes. There's no context about appropriate use cases or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap. For example, analyze_bioimpedance_pdf and analyze_bioimpedance_pdf_base64 handle different input formats for the same analysis, while support tools (create_ticket, update_ticket, close_ticket) and FAQ tools (get_all_faqs, search_faqs, etc.) are well-separated. An agent can easily distinguish between ticket management, FAQ retrieval, and document analysis functions.
All tools follow a consistent verb_noun pattern with snake_case throughout. Examples include create_ticket, get_faq_categories, and analyze_bioimpedance_pdf. This predictability makes it easy for agents to understand tool purposes and navigate the set without confusion from mixed naming conventions.
With 12 tools, the count is well-scoped for the server's purpose of handling support tickets, FAQs, and bioimpedance analysis. Each tool earns its place by covering distinct aspects of these domains, such as ticket lifecycle management, FAQ categorization and search, and document processing. This is neither too sparse nor bloated.
The tool set provides complete coverage for its inferred domains. For support tickets, it includes create, get, list, update, and close operations. For FAQs, it covers retrieval by category, search, and listing all. The bioimpedance analysis tools handle both file and base64 inputs. There are no obvious gaps, ensuring agents can perform end-to-end workflows without dead ends.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage workouts, nutrition, goals, and progress across the FitAF platform. Connect wearables, sync…
Connect your wearables, rings and training apps, then ask your AI about your own health data.
Track workouts, nutrition, body metrics, habits, and SMART goals with insights and trends. Connect…
Patient, prescription, anthropometry, scheduling, chat and food diary management for dietitians.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/osmarsant/fitslot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server