Back to tracker
Plugin tracker
Tools
Explore what tracked Claude Connectors and ChatGPT Plugins can actually do. Search by tool, Plugin, Brand, category, verb, or access requirement.
Latest snapshot2026-09-11USmethodology registry-public-v1
Searchable tools
113,017
Authless tools
7,424
Auth required
100,766
Described tools
61,166
113,017 tools
- Show Ideaflow account infowhoami · Return the connected Ideaflow account identity, notes app URL, and deployment environment (production, development, or local) for the authenticated session.IdeaflowIdeaflow, Inc.
PluginrequiredProductivity - Update an Ideaflow noteupdate · Replace text or update organization, public visibility, sharing, or display metadata for one active note owned by the connected user. Set markdown: true to turn a Markdown body into native Ideaflow rich content instead of plain paragraphs.IdeaflowIdeaflow, Inc.
PluginrequiredProductivity - onepro_analise_portfolioonepro · Análise completa de uma ou mais carteiras (salvas ou montadas na
conversa): retorno histórico, risco, drawdown e comparação com até 5
benchmarks na mesma chamada, como o seletor múltiplo da tela (com
'portfolios' e sem benchmarks, entram CDI e IBOV, o default da tela;
montando as linhas em 'carteiras', entra só o que você pedir).
Portfólio salvo é medido por padrão pela IMPLEMENTAÇÃO (produtos e
taxas reais — o número da tela; base='classes' mede a
alocação-alvo), com a base declarada em base_da_analise; produto com
índice e menos de 120 meses de série é estendido pelo índice,
descontada a taxa (a regra da tela, declarada em complementacao), e
a janela_efetiva nomeia o ativo limitante. É a tool principal para
"analise minha carteira" e a área Comparativo do app (Análise ›
Comparativo):
"Ranking de Portfolios", "Consistência de Retorno — 10 Anos",
"Recuperação dos Portfólios" e "Janelas Móveis" com a tabela de
vitórias abaixo dela. 'carteiras' reproduz o montador da tela:
até 10 linhas, cada uma um portfólio salvo ou itens
{ticker, peso}, e cada item produto OU índice do catálogo — um
índice sozinho a 100% É o índice, sem taxa, como a tela faz: "compare
o MSCI USA Small Cap, minha carteira salva e o VOO" é uma chamada
só. Use visao="ranking" para ordenar várias
carteiras, "consistencia" para janelas de 10 anos,
"sequencias_negativas" para os piores períodos e "janelas_moveis" para
"em quantas janelas de N anos a carteira superou o CDI": o retorno de
cada janela é o ACUMULADO do período, NUNCA anualizado — não compare
esses % com CAGR. A "Correlação 5 anos móveis" NÃO está no conector —
diga isso se ele pedir. Para reproduzir a aba Comportamento de UMA
carteira use onepro_comportamento: esta compara carteiras entre si;
aquela reproduz a tela, ativo a ativo. Resultados em
termos nominais na moeda pedida, janela informada em janela_efetiva —
cite-a. Não otimiza pesos (use onepro_otimizacao) nem projeta o
futuro (onepro_prospectivo, onepro_plano_retirada).OnePro AIOnePro
PluginrequiredFinance - onepro_buscar_ativosonepro · Busca ativos e índices por ticker ou trecho do nome no catálogo do
OnePro (ETFs BR e globais, ações, BDRs, FIIs, fundos, debêntures,
renda fixa, índices). Use PRIMEIRO sempre que o usuário citar um ativo
por nome ou ticker incerto — as demais tools exigem o identificador
exato retornado aqui (ticker; slug para RF pública; ISIN para RF
privada). A busca é por texto (substring), não semântica: prefira o
ticker ou um trecho único do nome ("IVVB", "Ibovespa"); descrições
genéricas ("ETF de S&P 500 da BlackRock") não encontram nada. Não
retorna preços nem retornos (use onepro_ficha_ativo).OnePro AIOnePro
PluginrequiredFinance - onepro_calculadora_aportesonepro · Calculadoras determinísticas de acumulação, sem carteira: que
retorno anual preciso para chegar à meta (retorno_necessario), quanto
terei (patrimonio_alvo), quanto aportar (aporte_necessario) e se um
plano fecha (verificar_plano) — tudo em termos REAIS (R$ de hoje e %
a.a. acima da inflação). São as abas de Análise › Aportes do app:
retorno necessário, patrimônio alvo e sucesso aposentadoria (esta
parte da renda mensal alvo — converta em meta de patrimônio antes).
A quarta aba, TWRR x MWRR, NÃO está no conector: só existe no site.
Use para contas rápidas de planejamento; para probabilidade com uma
carteira concreta use onepro_gbi, e para simular a aposentadoria
(retiradas), onepro_plano_retirada. Cada cálculo exige campos
próprios — o erro diz exatamente o que falta.OnePro AIOnePro
PluginrequiredFinance - onepro_comparar_ativosonepro · Analisa o histórico de 1 ativo ou compara 2 a 10 no mesmo período e
moeda: retorno anualizado, volatilidade, Sharpe, drawdown máximo e
correlação. Use para "qual foi melhor", "quão correlacionados são",
"qual caiu mais" ou análise de risco de um único ativo. Para medir os
ativos contra um índice (IBOV, IDIV, CDI, IFIX, IMA-B, S&P 500…),
passe a sigla em benchmarks — índice não é produto e não entra em
tickers. A resposta informa a janela efetivamente usada
(janela_efetiva) — cite-a. Não projeta o futuro (para simulação use os
motores, ex.: onepro_plano_retirada). incluir_overlap=true acrescenta
as posições em comum entre ETFs. incluir_janelas_moveis=true responde
o gráfico "Janelas Móveis" do comparador e da página do ativo — em
quantas janelas de 1, 3, 5, 10, 15 e 20 anos cada ativo ficou acima
dos outros e dos benchmarks —, com o retorno de cada janela em
ACUMULADO do período, NUNCA anualizado: não compare esses % com CAGR.
Para o mesmo gráfico de CARTEIRAS use onepro_analise_portfolio
(visao="janelas_moveis"), que também devolve a série mês a mês.OnePro AIOnePro
PluginrequiredFinance - onepro_comportamentoonepro · Reproduz a aba Comportamento do OnePro (Análise › Asset Allocation ›
Comportamento) para uma carteira: métricas completas (retorno, CAGR
real, volatilidade, Sharpe, Sortino, Ulcer, melhor/pior ano, maior
queda e tempo de recuperação), retorno ano a ano, rentabilidade
suavizada, drawdown, correlação, as quedas intra-ano (por ano, o
retorno do ano ao lado do pior mês dele) e as janelas móveis — os
mesmos números que o assinante vê no app. Analisa EXATAMENTE os pesos
informados, sem otimizar (para otimizar use onepro_otimizacao e passe
os pesos dela como 'carteira').
Portfólio salvo é medido por padrão pela IMPLEMENTAÇÃO (os produtos
que o assinante carrega, taxas reais — a mesma carteira de
onepro_analise_portfolio); base='classes' mede a alocação-alvo por
índice. base_da_analise declara a base em TODA visão e sub-aba, e a
complementação automática da tela (produto com índice e menos de 120
meses é estendido, descontada a taxa) sai no bloco complementacao.
Use quando o usuário citar a aba Comportamento ou um de seus gráficos
("Rentabilidade do Portfólio", "Rentabilidade Anual e Maior Declínio
Intra-Ano", "Janelas Móveis", "Performance Frente aos Benchmarks", o
rastreio); para comparar carteiras entre si e com benchmarks, e para
ranking/consistência, a tool é onepro_analise_portfolio — esta
reproduz a tela de UMA carteira.
Escolha a visão em 'visao'; 'incluir' reproduz as sub-abas Ativos,
Índices Econômicos (IPCA, CPI, CDI, dólar) e Rastreio (IBOV, CDI,
TSM, TSMUS). visao='janelas_moveis' responde "em quantas janelas de N
anos a carteira superou o CDI": o retorno de cada janela é o ACUMULADO
do período, NUNCA anualizado — não compare com CAGR nem anualize por
conta própria; para CAGR real por janela móvel use
onepro_multiperiodo (aba Multi Período). A série mês a mês sai com
response_format='detailed' e a janela escolhida em 'janela_anos'. A
"Correlação 5 anos móveis" NÃO está no conector — diga isso se ele
pedir. Confira a janela_efetiva.OnePro AIOnePro
PluginrequiredFinance - onepro_composicao_ativoonepro · Composição de um ETF, BDR ou FII: visão "resumo" traz agregados por
setor, país e as 10 maiores posições; visão "posicoes" lista as
posições individuais, paginadas. Use quando o usuário perguntar "o que
o fundo X carrega". Para o caminho inverso ("quem carrega a ação Y"),
use onepro_etfs_que_carregam. Não cobre fundos sem carteira divulgada
(a resposta orienta a alternativa). ETFs de ETFs são decompostos: as
posições efetivas (look-through) declaram o ETF de origem em via_etf.OnePro AIOnePro
PluginrequiredFinance - onepro_conexao_statusonepro · Diagnóstico da conexão com o OnePro: status da assinatura, cotas de
uso restantes e versão do snapshot de dados — o mesmo estado que o
assinante vê em Configurações › OnePro AI no app. Use quando outra tool
falhar de forma inesperada, quando o usuário perguntar "por que não
funciona" ou para saber a data-base dos dados. Não retorna dados
pessoais nem de carteira; conectar ou revogar um cliente de IA é
feito no site, nessa mesma tela.OnePro AIOnePro
PluginrequiredFinance - onepro_etfs_que_carregamonepro · Lookup reverso de holdings: dado um ativo (ex.: NVDA, PETR4), lista
os ETFs do catálogo que o carregam e com que peso, do maior para o
menor. Use para "quais ETFs têm exposição a X" ou "quem carrega Y".
Não responde a composição de um fundo (use onepro_composicao_ativo).
Não cobre fundos sem carteira divulgada — um ativo pode estar em mais
ETFs do que os listados.OnePro AIOnePro
PluginrequiredFinance - onepro_ficha_ativoonepro · Ficha completa de UM ativo de qualquer classe: identificação,
custos, PL, retornos (1m/1a/3a/5a…), alocação e estrutura. Use quando
o usuário quiser entender ou avaliar um ativo específico; para
comparar dois ou mais, prefira onepro_comparar_ativos; para posições
individuais da carteira do fundo, use onepro_composicao_ativo. Exige o
identificador exato (resolva antes com onepro_buscar_ativos). Retornos
vêm do snapshot mensal, na moeda pedida; o bloco complementacao diz se
o histórico foi estendido pelo índice de referência do ativo.OnePro AIOnePro
PluginrequiredFinance - onepro_gbionepro · Goal-based investing: probabilidade de a carteira atingir uma meta
de patrimônio em um prazo, dado o patrimônio atual e aportes mensais
(valores em R$ de hoje, resultado em termos REAIS — não aplique
inflação por cima). É a aba Sucesso do portfólio do app (Análise ›
GBI): "Taxa de Sucesso", "Trajetórias Históricas vs. Meta",
"Distribuição de Patrimônio Simulado vs. Meta" e os percentis por
horizonte. Use para "chego a R$ X em N anos?". Portfólio salvo é
medido por padrão pela IMPLEMENTAÇÃO (os produtos que o assinante
carrega, taxas reais — a mesma carteira da tool âncora
onepro_analise_portfolio); base='classes' mede a alocação-alvo por
índice, e base_da_analise declara a base usada, a implementação e a
parcela não implementada. Nessa base, produto com índice de
referência e menos de 120 meses de série é estendido para trás pelo
índice sem pedido, descontada a taxa — a regra da tela; o bloco
complementacao declara o índice usado e os meses simulados. Se o
usuário quiser o aporte ou retorno NECESSÁRIO para a meta (cálculo
determinístico, sem carteira), use onepro_calculadora_aportes; para a
distribuição completa sem meta, onepro_prospectivo. Seed
determinística por snapshot: repetir a chamada dá o mesmo resultado.
Confira janela_efetiva na resposta.OnePro AIOnePro
PluginrequiredFinance - onepro_localizar_graficoonepro · Localiza a tela do OnePro pelo nome que o assinante usa — o da
interface, o do relatório ou o apelido — e devolve a tool e os
parâmetros que respondem àquele gráfico, ou a negativa explícita com a
área e a aba onde ele mora, quando a tela existe no app mas não no
conector. Use quando a pergunta citar um gráfico, uma aba ou um
relatório pelo nome ("aquele de janelas móveis", "a consistência", "o
rastreio") e você não tiver certeza de qual tool responde. Ela SÓ
localiza: não executa nada e não devolve número — chame depois a tool
indicada em `tool` com os `parametros` devolvidos. Quando nada
corresponder, ela devolve as telas mais próximas em `sugestoes`:
confirme com o assinante em vez de responder pela tool mais parecida.OnePro AIOnePro
PluginrequiredFinance - onepro_meus_portfoliosonepro · Lista os portfólios (estudos de carteira) salvos do assinante no
OnePro: nome, descrição, data, número de ativos e as implementações de
cada um, nomeadas — o mesmo modal "Meus Portfólios" da barra de slots
das telas de Análise › Asset Allocation. Use como primeiro passo de
qualquer análise da carteira do usuário, ou quando ele disser "minha
carteira" sem nomear qual. Retorna apenas os portfólios da própria
conta — pesos e nomes, nunca dados pessoais. Lista vazia = o usuário
ainda não montou carteiras no OnePro (oriente-o a criar em
etf1.com.br/onepro).OnePro AIOnePro
PluginrequiredFinance - onepro_multiperiodoonepro · Comportamento da carteira em TODAS as janelas móveis de N anos do
histórico (ex.: cada janela de 10 anos desde 1990): tabela de
métricas, percentis de CAGR real por janela, distribuição de
retornos, heatmap por ano inicial e piores sequências negativas. É a
aba Multi Período do app (Análise › Asset Allocation › Multi
Período): "Métricas do Portfólio", "Heatmap dos retornos históricos ›
CAGR Real (ano inicial × horizonte)" e "Sequências de Drawdown Real".
Use para "como esta carteira se comportou em janelas de 10 anos" ou
para calibrar expectativas de longo prazo. Portfólio salvo é medido
por padrão pela IMPLEMENTAÇÃO (os produtos que o assinante carrega,
taxas reais — a mesma carteira da tool âncora
onepro_analise_portfolio); base='classes' mede a alocação-alvo por
índice, e base_da_analise declara a base usada, a implementação e a
parcela não implementada. Nessa base, produto com índice de
referência e menos de 120 meses de série é estendido para trás pelo
índice sem pedido, descontada a taxa — a regra da tela; o bloco
complementacao declara o índice usado e os meses simulados. É análise
histórica, não projeção (para projetar use onepro_prospectivo). Não
devolve os heatmaps de patrimônio (real vs inflação, nominal) da
tela. Respostas grandes: comece com visao='tabela' em concise;
confira janela_efetiva.OnePro AIOnePro
PluginrequiredFinance - onepro_otimizacaoonepro · Calcula a fronteira eficiente do conjunto de ativos informado e a
carteira ótima pelo método escolhido em 'metodo' (máximo Sharpe por
default; também Ulcer, Volatilidade Alvo e Paridade de Risco),
comparando com os pesos atuais: são os gráficos "Fronteira Eficiente"
e "Portfólio Ótimo" da aba Otimização do app (Análise › Asset
Allocation › Otimização), com o mesmo seletor de método da tela. Use
para "otimize minha carteira" ou "qual a melhor combinação destes
ativos". Portfólio salvo é medido por padrão pela IMPLEMENTAÇÃO (os
produtos que o assinante carrega, taxas reais — a mesma carteira da
tool âncora onepro_analise_portfolio); base='classes' mede a
alocação-alvo por índice, e base_da_analise declara a base usada, a
implementação e a parcela não implementada. Nessa base, produto com
índice de referência e menos de 120 meses de série é estendido para
trás pelo índice sem pedido, descontada a taxa — a regra da tela; o
bloco complementacao declara o índice usado e os meses simulados.
A otimização é histórica (janela em janela_efetiva) — não é
recomendação; apresente como análise do período. Não aceita
restrições de peso mín/máx por ativo (isso é da Exploração › Asset
Allocation, fora do conector). Pesos de saída somam 100%. Precisa de
2+ ativos; para
analisar risco/retorno de UMA carteira sem otimizar, use
onepro_analise_portfolio, e para a tabela completa da tela (Sortino,
Ulcer, tempo de recuperação), onepro_comportamento. Não devolve a
"Distribuição Normal dos Retornos" nem o "Gráfico de Crescimento" da
tela.OnePro AIOnePro
PluginrequiredFinance - onepro_plano_retiradaonepro · Simula a aposentadoria: dado um patrimônio, uma carteira e uma
retirada mensal em R$ de hoje, estima a probabilidade de o dinheiro
durar o horizonte, o SWR (taxa segura) e o PWR (taxa perpétua). É a
área Plano de Retirada do app (Análise › Plano de Retirada), nas três
abas: 4% (Clássico/Rebalanceado), Bucket strategy e Dynamic spending
— com a "Curva de Sobrevivência", a "Distribuição do Patrimônio" e a
"Simulação de Retiradas Anuais". TUDO em termos REAIS — não aplique
inflação por cima. Use para "quanto posso sacar", "meu dinheiro
dura?". metodo="historico" percorre janelas reais; "monte_carlo"
amostra retornos (block bootstrap, seed determinística por snapshot —
repetir a chamada dá o mesmo resultado).
Portfólio salvo é medido por padrão pela IMPLEMENTAÇÃO (os produtos
que o assinante carrega, taxas reais — a mesma carteira da tool
âncora onepro_analise_portfolio); base='classes' mede a alocação-alvo
por índice, e base_da_analise declara a base usada, a implementação e
a parcela não implementada — nos dois métodos. Nessa base, produto
com índice de referência e menos de 120 meses de série é estendido
para trás pelo índice sem pedido, descontada a taxa — a regra da
tela; o bloco complementacao declara o índice usado e os meses
simulados.
estrategia: "classico" (buy-and-hold), "rebalanceado" (anual),
"baldes" (caixa/estabilidade/crescimento) e "dynamic" exigem a config
correspondente (config_baldes/config_dynamic). Na estratégia de
baldes, cada balde pode carregar um portfólio salvo próprio
(portfolio_caixa/portfolio_estabilidade; a carteira principal é o
balde de crescimento) — o balde que carrega um declara a base DELE em
base_da_analise. A janela
ano_inicio–ano_fim define DE QUAIS anos históricos os retornos vêm
(não é o ano da aposentadoria); confira janela_efetiva na resposta.
Não recomenda carteiras.OnePro AIOnePro
PluginrequiredFinance - onepro_portfolio_detalheonepro · Detalha um portfólio salvo do assinante: alocação-alvo (pesos por
índice) e, se existirem, as implementações com produtos concretos e
custos (taxa_adm) — o que o app mostra na aba Portfolio de Análise ›
Implementação. implementacao_default nomeia a implementação (a mais
recente) que os motores usam por default como base da análise deste
portfólio. Use após onepro_meus_portfolios, passando o nome exato. Os
pesos somam 100%; valores em R$ não existem no OnePro — se o usuário
quiser simular com valores, peça os montantes a ele e use os motores
(ex.: onepro_plano_retirada). Só lê: montar ou editar uma
implementação é feito no site.OnePro AIOnePro
PluginrequiredFinance - onepro_prospectivoonepro · Projeção prospectiva do patrimônio via Monte Carlo: distribui os
caminhos possíveis da carteira no horizonte dado, com aportes mensais
opcionais (termos REAIS — R$ de hoje, sem inflação por cima). Use
para "onde minha carteira pode estar em N anos". Difere de onepro_gbi
(que responde a probabilidade de UMA meta) por devolver a
distribuição completa (percentis por ano). Portfólio salvo é medido
por padrão pela IMPLEMENTAÇÃO (os produtos que o assinante carrega,
taxas reais — a mesma carteira da tool âncora
onepro_analise_portfolio); base='classes' mede a alocação-alvo por
índice, e base_da_analise declara a base usada, a implementação e a
parcela não implementada. Nessa base, produto com índice de
referência e menos de 120 meses de série é estendido para trás pelo
índice sem pedido, descontada a taxa — a regra da tela; o bloco
complementacao declara o índice usado e os meses simulados. É a
resposta mais próxima
da aba Prospectivo do app (Análise › Asset Allocation › Prospectivo),
mas devolve percentis de PATRIMÔNIO, não os percentis de CAGR da tela
— outro motor de Monte Carlo, então não prometa os mesmos números; as
"Probabilidades de Retorno" e as "Probabilidades de Quedas no 1º Ano"
da tela não estão no conector. Simulações fixas em 10.000, seed
determinística por snapshot: repetir a chamada dá o mesmo resultado.
Confira janela_efetiva na resposta.OnePro AIOnePro
PluginrequiredFinance - onepro_screeneronepro · Busca filtrada de ativos dentro de uma classe (screener). Chame SEM
o campo "filtros" para descobrir quais filtros a classe aceita
(faixas, categorias e contagens); depois chame com "filtros"
preenchido para obter a lista. Use para perguntas do tipo "quais ETFs
de dividendos com PL acima de X e taxa abaixo de Y". Não busca por
nome (use onepro_buscar_ativos) e não retorna a ficha completa (use
onepro_ficha_ativo com os tickers do resultado).OnePro AIOnePro
PluginrequiredFinance - onepro_serie_mensalonepro · Séries mensais brutas de ativos e índices (IBOV, CDI, S&P 500…), na
moeda pedida, para o usuário produzir a própria análise. Use quando
pedirem "a série", "os dados mensais" ou análises que as demais tools
não cobrem. Cada ponto é [ano-mes, retorno_do_mes_em_%]. Dados de
snapshot mensal — o mês corrente não fecha antes do próximo snapshot.
Para estatísticas prontas (retorno anualizado, vol, correlação),
onepro_comparar_ativos é mais barato.OnePro AIOnePro
PluginrequiredFinance - Change Record Stagechange · Move a custom-object record to a new pipeline stage.
`stage` must be one of this object's valid_statuses from
get_data_model(slug); the transition is validated server-side against the
account's pipeline rules first (allowed transitions, required fields) and
a clear error is returned if it is not allowed.
Use update_record for field changes — this tool ONLY changes the stage.FieldCampFieldCamp
PluginrequiredOperations - Check Schedule Conflictscheck · Check scheduling conflicts for team members against proposed visit times.
Considers weeklySchedule, specificHours (availability), and existing visit overlaps.
REQUIRED parameters:
- teamMemberIds: array of team member MongoDB IDs
- visits: array of visit objects [{visitStartDateTime, visitEndDateTime}] in UTC
- timezone: string — user's timezone for proper comparison (e.g. 'America/New_York')
OPTIONAL:
- excludeJobId: string — exclude a specific job when checking overlapsFieldCampFieldCamp
PluginrequiredOperations - Convert Recordconvert · Execute a conversion rule on a record — creates a NEW record in the
rule's target object (e.g. template → live record, unit → renewal job).
Confirm with the user before calling.
Valid rule_id values: the conversion_actions listed by
get_data_model(slug). Each rule has trigger stages — the record must
currently be in one of them. additional_data (optional) is merged into
the created record.FieldCampFieldCamp
PluginrequiredOperations - Convert Request to Estimateconvert · Convert a service request into an estimate document.
REQUIRED:
- request_id: MongoDB ObjectId of the request to convert
OPTIONAL:
- conversion_data: Dictionary with estimate options
- dueDate: ISO date for the estimate due date
- paymentTerms: integer — number of days (e.g., 30 for Net 30, 0 for Due on receipt)
- comments: string
- internalNotes: string
This copies all line items and taxes from the request into a new estimate,
and marks the request stage as "converted".
Returns the converted estimate ID and number.FieldCampFieldCamp
PluginrequiredOperations - Create Calendar Eventcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"event_data": { ...event fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new event in Google Calendar.
REQUIRED fields in event_data:
- title: string — event title
- start: ISO 8601 datetime — event start time
- end: ISO 8601 datetime — event end time
OPTIONAL fields:
- timeZone: string (e.g. 'UTC', 'America/New_York')
- isAllDay: boolean — whether event spans full day
- attendees: array of {email, optional, id} — invitees
- recurrence: object — {frequency, interval, weekdays, count, until}
- location: string or object — event location
- description: string — event notes
- colorId: string — color ID or hex color
- metadata: object — custom metadata in extended propertiesFieldCampFieldCamp
PluginrequiredOperations - Create Clientcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"client_data": { ...client fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new client in FieldCamp.
REQUIRED fields:
- client_data: Dictionary containing client information
CLIENT_DATA REQUIRED fields:
- firstName OR email — at least one of these is required.
- firstName: string (MUST split full names - "John Smith" → firstName: "John", lastName: "Smith")
- email: string
CLIENT_DATA OPTIONAL fields:
- lastName: string (can be empty "")
- propertyAddress: object with {street, city, state, country, zipCode, formattedAddress} (all optional; an address object, NOT a plain string)
- phoneNumber: object {countryCode: "+1", number: "5551234567", countryIdentifier: "us"}
- companyName, website, taxNumber: string
- billingAddress, companyAddress: object
- notes: string
- stage: ACCOUNT-SPECIFIC — call get_data_model("client") for this
account's real stage values (accounts rename/replace the defaults;
sending a stale default fails or mislabels the client)
- clientType: "business" or "individual"
- properties: array
- preferredTechnicianIds, jobFormIds: arrays of ids
(Clients have no `tags` field — it is not accepted, so do not send it.)
Example:
{
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"phoneNumber": {"countryCode": "+1", "number": "5551234567", "countryIdentifier": "us"},
"propertyAddress": {
"formattedAddress": "123 Main St, Toronto, Ontario, Canada",
"city": "Toronto",
"state": "Ontario",
"country": "Canada"
}
}FieldCampFieldCamp
PluginrequiredOperations - Create Custom Object Recordcreate · Create a record of a CUSTOM object (e.g. slug="unit").
Call get_data_model(slug) FIRST — `data` must be keyed by the canonical
field NAMES it returns (not labels), and `status` (optional initial
pipeline stage) must be one of its valid_statuses. Relation fields take
the target record's id (or array of ids for multi-relations).
Example: create_record("unit",
data={"serial_no": "GEN-002", "client_ref": "<client id>"},
status="active")FieldCampFieldCamp
PluginrequiredOperations - Create Documentcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"document_data": { ...document fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new invoice or estimate in FieldCamp.
REQUIRED fields in document_data:
- documentNumber: integer — this field is required. Obtain the next number
via the get_document_number tool (pass the same documentType) and use its
value here.
- documentType: 1 (Invoice) or 2 (Estimate) (default: 1)
OPTIONAL fields:
- clientId: MongoDB ObjectId
- title: string
- date: ISO date (default: today)
- dueDate: ISO date
- items: array of line items [{name, quantity, rate, description, taxIds}]
- discount: number
- discountType: 1 (percentage) or 2 (flat)
- subTotal: number
- total: number
- paymentStatus: "unpaid", "paid", "partial", "overdue". HONORED ONLY for
ESTIMATES (documentType=2). For INVOICES (documentType=1, the default) the
backend hard-forces paymentStatus="unpaid" no matter what you pass (silently
overwritten). To mark an invoice paid/partial, use the record_payment tool.
- paymentTerms: integer — number of days (e.g., 30 for Net 30, 0 for Due on receipt)
- privateNotes: string (internal) — or `comments` for client-facing text.
Documents have no `notes` field — it is not accepted, so do not send it.
- terms: string
- tags: array
MULTI-OPTION ESTIMATE (give the customer choices): set documentType=2,
isMultiOption=true, and provide estimateOptions instead of a single items[].
Each option = {name, description?, isDefault?, lineItems:[{name, quantity,
rate, description?}]}. Omit top-level items[] when using estimateOptions.
Example (create invoice):
{
"documentNumber": 1,
"documentType": 1,
"clientId": "68efbd5a689d240560536cd6",
"items": [
{"name": "HVAC Repair", "quantity": 1, "rate": 150, "description": "Emergency repair"}
],
"dueDate": "2026-02-28"
}
Example (multi-option estimate):
{
"documentNumber": 1, "documentType": 2, "isMultiOption": true,
"clientId": "68efbd5a689d240560536cd6",
"estimateOptions": [
{"name": "Good", "lineItems": [{"name": "Basic clean", "quantity": 1, "rate": 100}]},
{"name": "Best", "isDefault": true, "lineItems": [{"name": "Deep clean", "quantity": 1, "rate": 250}]}
]
}FieldCampFieldCamp
PluginrequiredOperations - Create Jobcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"job_data": { ...job fields... }, "notes": "optional"}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new job in FieldCamp.
REQUIRED parameters:
- job_data: Dictionary containing job information
OPTIONAL parameters:
- notes: Additional notes for the job (default: "")
JOB_DATA REQUIRED fields:
- clientId: MongoDB ObjectId (from search_database or get_client_by_id)
- jobType: "one-off", "recurring", or "multi-day"
- jobNumber: string or number
- startDateTime: ISO 8601 format (e.g., "2026-01-25T09:00:00.000Z")
- jobAddress: object with {city, state, country, formattedAddress}
JOB_DATA OPTIONAL fields:
- jobTypeId: id from get_job_types — the account's job-type catalog
("Annual PM" vs "6-Month Checkup"). Distinct from jobType above.
- targetRecordId + targetObjectSlug: link this job to a custom-object
record (e.g. targetObjectSlug="unit", targetRecordId=<record id from
list_records>). This is how PM jobs attach to the asset they service.
- billToClientId: bill a different client than clientId (property
manager / homeowner split).
- endDateTime: ISO 8601 format
- jobPhone: object {countryCode: "+1", number: "xxx", countryIdentifier: "us"}
- assignedToTeams: array of team IDs
- jobItems: array of line-item objects. Each REQUIRES `itemName` (string) + `price`
(per-unit number); `quantity` defaults to 1 and `total` is auto-computed
(price*quantity). Reference an existing item with `itemId` (24-hex items id — NOT
productServiceId/id); omit itemId for an ad-hoc line. E.g.
[{"itemName": "Air filter", "price": 20, "quantity": 2}]
- ⚠️ linkedRecords is NOT accepted (rejected with 400 — the backend silently drops
it). Use targetRecordId + targetObjectSlug (above) to link a record instead.
- subTotal, tax, total, discount: numbers
- jobStatus: ACCOUNT-SPECIFIC — call get_data_model("job") for this
account's real stage values before setting one. Create does NOT validate
(it stores whatever string is sent), so a stale/guessed value silently
mislabels the job for filtering/UI. Defaults to "scheduled" if omitted.
- priority: "low", "medium", "high"
- timezone: string (e.g., "America/Toronto")
- anyTime: boolean
- serviceDuration: number (seconds)
- scheduleLater: boolean
RECURRING JOBS: set jobType="recurring" AND provide recurringOptions — a list
like [{"frequency": "weekly", "interval": 1, "duration": {"value": 1, "unit":
"month"}}] (frequency = daily/weekly/monthly; interval = every N periods).
Complex patterns (specific weekdays, nth-weekday, days-of-month) use
customSettings {monthlyType, nthWeekday, daysOfMonth, weekDays}; if the
pattern is non-trivial or unclear, confirm the exact recurringOptions with
the user instead of guessing.
Example:
{
"clientId": "68efbd5a689d240560536cd6",
"jobType": "one-off",
"jobNumber": "JOB-001",
"jobStatus": "scheduled",
"jobAddress": {
"formattedAddress": "123 Main St, Toronto, Ontario, Canada",
"city": "Toronto",
"state": "Ontario",
"country": "Canada"
},
"startDateTime": "2026-01-25T09:00:00.000Z",
"endDateTime": "2026-01-25T17:00:00.000Z"
}FieldCampFieldCamp
PluginrequiredOperations - Create Product/Servicecreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"product_service_data": { ...fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new product or service in FieldCamp.
REQUIRED parameters:
- product_service_data: Dictionary containing product/service information
PRODUCT_SERVICE_DATA REQUIRED fields:
- name: string
- type: "Product" or "Service"
- price: number
PRODUCT_SERVICE_DATA OPTIONAL fields:
- description: string
- properties: array
- isTaxExempt/exemptFromTax: boolean (default: false)
- duration: number (minutes, for services)
- isActive: boolean (default: true)
- isInventoried/trackInventory: boolean (default: false). If true, `inventory`
(below) is REQUIRED — the backend creates a stock row and 400s/500s without it.
- categoryIds: array of category IDs
- inventory: object — required when tracking is on. Shape:
{
"locationId": "<24-hex warehouse ObjectId>", // REQUIRED. This is the
// warehouse key — NOT "warehouseId"/"warehouse"/"location"
// (those are not accepted). Get one from get_warehouses.
"sku": "SKU-001", // REQUIRED, must be GLOBALLY unique (duplicate 500s)
"quantity": 10, // integer on-hand count (default 0)
"lowStockAlert": 5, // integer reorder threshold (default 5)
"binLocation": "A-1" // optional
}
- taxIds: array of tax IDs
- formIds: array
- settings: object with {onlineBooking, allowFillForm, serviceDuration, bookingType}
- cost: number — internal unit cost (never client-facing); drives the estimate
phase-margin breakdown (product cost → Material, service cost → Labor)
- unitOfMeasurementId: string — unit of measurement id (sq ft, hour, each, …);
valid ids from GET /api/unit-measures; reads return populated unitOfMeasurement
Example:
{
"name": "GPU",
"type": "Product",
"price": 100,
"description": "High-performance graphics card",
"isActive": true,
"exemptFromTax": false,
"trackInventory": false
}FieldCampFieldCamp
PluginrequiredOperations - Create Purchase Ordercreate · Create a purchase order (order stock from a vendor) in FieldCamp.
REQUIRED in po_data:
- vendorId: the supplier to order from (use get_vendors to find it).
- items: non-empty array of line items. Each item: {itemId, quantity,
price}; set displayType:'kit' to order an inventory kit (the backend
expands it into its component items).
OPTIONAL in po_data:
- poNumber, expectedDeliveryDate (ISO date), notes.
Call get_vendors for the vendorId and get_products_services / get_inventory
for item ids before creating.FieldCampFieldCamp
PluginrequiredOperations - Create Requestcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"request_data": { ...request fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new service request in FieldCamp.
REQUIRED fields in request_data:
- clientId: MongoDB ObjectId of the client
OPTIONAL fields:
- source: string (default: "manual")
- description: string
- urgency: string enum — "low", "medium", "high", "critical" (default: "medium")
- requestAddress: object {formattedAddress, city, state, country}
- startDate: ISO 8601 format
- endDate: ISO 8601 format
- stage: ACCOUNT-SPECIFIC (request pipeline is org-configurable) — call
get_data_model("request") for this account's real stage slugs.
Default: "new_request". Built-in default slugs:
new_request, unscheduled, overdue, inspection_scheduled,
inspection_complete, quote_created, quote_sent, converted,
lost_no_response, lost_reject_quote, cancelled, duplicate
- assignedTo: array of user MongoDB ObjectIds
- notes: string
- tags: array of strings
- estimatedValue: number
- items: array of line items [{itemId, itemName, quantity, rate}]. ⚠️ itemId
is REQUIRED on each item and MUST be a real product/service id from
get_products_services — items without a valid itemId cause a server error.
If you have no product id, OMIT items entirely (use description/estimatedValue).
- taxes: array of tax objects [{taxId, name, rate, taxType}]
Example:
{
"clientId": "68efbd5a689d240560536cd6",
"description": "HVAC repair needed",
"urgency": "high",
"stage": "new_request"
}FieldCampFieldCamp
PluginrequiredOperations - Create Taskcreate · Create a new task in FieldCamp.
REQUIRED parameters:
- name: Task name/title
- scheduleDateTime: ISO 8601 format (e.g., "2026-01-25T14:00:00.000Z")
OPTIONAL parameters:
- instructions: Detailed task instructions
- priority: "low", "normal", "high", "urgent" (default: "normal")
- category: "admin", "maintenance", "follow_up", "inspection" (default: "follow_up")
- assignedToId: MongoDB ObjectId of user to assign (search users collection)
- clientId: MongoDB ObjectId of linked client
- linkType: "client", "job", "estimate", "invoice"
- jobId, estimateId, invoiceId: MongoDB ObjectIds for linked entities
- propertyAddress: string
- scheduleType: "once", "daily", "weekly", "monthly" (default: "once"). For a
recurring task pass a non-"once" value AND a recurrenceRule — recurrence is
driven by recurrenceRule; scheduleType is the stored label.
- scheduleEndDate: ISO 8601 format (for recurring tasks)
- allDay: boolean (default: false)
- duration: minutes (default: 30)
- recurrenceRule: e.g., "FREQ=DAILY;INTERVAL=1" (for recurring)
- recurrenceCount: number of occurrences
- reminderType: "email", "sms", "push"
- reminderTime: minutes before task (default: 15)
- tags: array of strings
- emailTeam: boolean - notify assignee (default: false)FieldCampFieldCamp
PluginrequiredOperations - Create Tax Ratecreate · Create a tax rate in FieldCamp.
REQUIRED in tax_data:
- name: tax name (e.g. 'GST').
- rate: percentage as a number (e.g. 5 for 5%).
OPTIONAL in tax_data:
- taxType: 1 = exclusive (default), other values per settings.
- description, applyOnAllItems (bool), countryId, stateId,
effectiveDate (ISO date), applicationRules (array).
The new tax id feeds the `taxIds` arrays on create_document and
create_product_service. Admin / settings permission required.FieldCampFieldCamp
PluginrequiredOperations - Create Vendorcreate · Create a vendor / supplier in FieldCamp.
REQUIRED:
- name: vendor name.
OPTIONAL:
- email: must be unique for the org (backend rejects a duplicate).
- phone: composite OBJECT (dict), NOT a plain string — a bare string is
rejected by the backend. Shape:
{"countryCode": "+1", "number": "4155550100", "countryIdentifier": "us"}
- address: composite OBJECT (dict), NOT a plain string — a bare string is
rejected by the backend. Shape (sub-fields optional; at minimum pass
{"formattedAddress": "..."}):
{"formattedAddress": "...", "city": "...", "state": "..."}
Returns the created vendor. Use its id as `preferredVendorId` on
create_product_service / update_product_service. Call get_vendors first to
check whether the vendor already exists.FieldCampFieldCamp
PluginrequiredOperations - Create Visitcreate · Create a new visit/appointment for a job.
REQUIRED parameters:
- jobId: MongoDB ObjectId of the job (get from search_database or get_job_by_id)
- visitStartDateTime: ISO 8601 format (e.g., "2026-01-25T14:00:00.000Z")
- visitEndDateTime: ISO 8601 format (e.g., "2026-01-25T16:00:00.000Z")
- teamId: List of team-member IDs. Pass as array (preferred, e.g. ["t1", "t2"]) or JSON-string (e.g. '["t1","t2"]'). Both forms are accepted; the server normalizes to an array on the wire.
OPTIONAL parameters:
- visitStatus: account-specific — call get_data_model("visit") for valid values (default: "scheduled")
- priority: "low", "medium", "high" (default: "medium")
- scheduleLater: "true" or "false" as string (default: "false")
- anyTime: "true" or "false" as string - flexible time (default: "false")
- isExtraVisit: "true" or "false" as string - extra visit beyond original (default: "false")
- skillsId: required skills for the visitFieldCampFieldCamp
PluginrequiredOperations - Create Warehousecreate · Create a warehouse / inventory location in FieldCamp.
REQUIRED:
- name: warehouse name.
OPTIONAL:
- warehouseType: stored as the warehouse type (e.g. 'Main Warehouse',
'Technician Truck/Van').
- address: composite OBJECT (dict), NOT a plain string — a bare string is
rejected by the backend. Shape (all sub-fields optional; at minimum pass
{"formattedAddress": "..."}):
{
"formattedAddress": "123 Main St, Austin, TX 78701, USA",
"street": "123 Main St",
"city": "Austin",
"state": "TX",
"country": "USA",
"zipCode": "78701"
}
Returns the created warehouse. Use its id as fromWarehouseId / toWarehouseId
on transfer_inventory and as the `warehouse` filter on get_inventory. Call
get_warehouses first to check whether a matching location already exists.FieldCampFieldCamp
PluginrequiredOperations - Delete Calendar Eventdelete · Delete an event from Google Calendar.
REQUIRED:
- eventId: string — ID of the calendar event to deleteFieldCampFieldCamp
PluginrequiredOperations - Delete Clientdelete · Delete a client from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- client_id: MongoDB ObjectId of the client
OPTIONAL:
- forceDelete: "true" to permanently delete, "false" to soft delete (default: "false")
Set forceDelete="true" to permanently delete the client and all associated data.
Set forceDelete="false" to soft delete (can be recovered).FieldCampFieldCamp
PluginrequiredOperations - Delete Documentsdelete · Delete invoice(s) or estimate(s) from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- document_ids: Array of document MongoDB ObjectIds to deleteFieldCampFieldCamp
PluginrequiredOperations - Delete Inventory Itemdelete · Delete inventory item(s) from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- delete_ids: Array of inventory item MongoDB ObjectIds
OPTIONAL:
- current_warehouse_id: MongoDB ObjectId of warehouse (when an item exists
in multiple warehouses, this picks which one to delete)FieldCampFieldCamp
PluginrequiredOperations - Delete Jobdelete · Delete a single job from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- job_id: MongoDB ObjectId of the job
NOTE: This tool deletes ONE job at a time. If the user wants to delete multiple jobs,
call this tool separately for each job_id.FieldCampFieldCamp
PluginrequiredOperations - Delete Product/Servicedelete · Delete product(s) or service(s) from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- delete_ids: Array of product/service MongoDB ObjectIds to deleteFieldCampFieldCamp
PluginrequiredOperations - Delete Purchase Order(s)delete · Delete one or more purchase orders in FieldCamp.
REQUIRED:
- delete_ids: array of purchase order ids to delete (from
get_purchase_orders).
DESTRUCTIVE: removes the purchase orders and their line items. Confirm with
the user before calling.FieldCampFieldCamp
PluginrequiredOperations - Delete Requestdelete · Delete a service request from FieldCamp (soft delete).
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- request_id: MongoDB ObjectId of the request
Sets the request status to 'Deleted' and removes related items and taxes.
Only the request creator or parent user can delete.FieldCampFieldCamp
PluginrequiredOperations - Delete Taskdelete · Delete a task from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- task_id: MongoDB ObjectId of the taskFieldCampFieldCamp
PluginrequiredOperations - Delete Tax Rate(s)delete · Delete one or more tax rates in FieldCamp.
REQUIRED:
- delete_ids: array of tax ids to delete (from get_taxes).
DESTRUCTIVE: soft-deletes the taxes (status='Deleted') and marks any
QuickBooks tax mappings deleted. Existing documents keep their stored tax
values. Admin / settings permission required. Confirm with the user before
calling.FieldCampFieldCamp
PluginrequiredOperations - Delete Vendor(s)delete · Delete one or more vendors / suppliers in FieldCamp.
REQUIRED:
- delete_ids: array of vendor ids to delete (from get_vendors).
DESTRUCTIVE: the backend archives each vendor and its related data, then
removes the vendors and their purchase orders. Confirm with the user before
calling.FieldCampFieldCamp
PluginrequiredOperations - Delete Visitdelete · Delete a visit/appointment from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- visitId: MongoDB ObjectId of the visitFieldCampFieldCamp
PluginrequiredOperations
What is Tool Explorer?
Tool Explorer indexes the callable tool names and descriptions attached to public registry profiles. It is useful for seeing what agents can actually invoke, not just which profile exists.
How do category and verb filters work?
Category filters use the live registry category rollup. Verb filters use the public tool insights rollup, so the page stays backed by the same read models as the tracker charts.
Why do auth requirements matter?
Auth requirements show whether a tool is likely usable without account connection, requires authentication, is private, or is unknown in the current snapshot.