Skip to main content
Glama
alma-corpus-mcp

alma-corpus-mcp

by adamzacharia

lte_column_density

Calculate total column density from one spectral line under LTE, including optional optical-depth correction and partition-function input.

Instructions

Total column density from one line in LTE (Mangum and Shirley 2015 form).

N_u = 8 pi k nu^2 W / (h c^3 A_ul) x J(T_ex) / (J(T_ex) - J(T_bg)) / beam_filling, with J(T) = (h nu/k) / (exp(h nu / k T) - 1); N_tot = N_u Q(T_ex) / g_u exp(E_u / T_ex). Optical depth: give tau directly, or peak_tb_k so tau = -ln(1 - T_peak / (f (J(T_ex) - J(T_bg)))); then N is multiplied by C_tau = tau / (1 - exp(-tau)). Q from partition_q, a [[T, Q]] table or a linear rotor B. Limits: T_ex must be assumed (N can change by factors of several over 10-100 K); one line cannot test LTE.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "w_k_kms": "<w_k_kms>",
      "freq_ghz": "<freq_ghz>",
      "a_ul": "<a_ul>",
      "e_u_k": "<e_u_k>",
      "g_u": "<g_u>",
      "t_ex_k": "<t_ex_k>"
    },
    "name": "lte_column_density"
  }
}

Input Schema

NameRequiredDescriptionDefault
g_uYes
tauNo
a_ulYes
e_u_kYes
t_bg_kNo
t_ex_kYes
w_k_kmsYes
freq_ghzYes
peak_tb_kNo
partition_qNo
w_err_k_kmsNo
beam_fillingNo
partition_tableNo
linear_rotor_b_ghzNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden; it does disclose the governing equations, the tau/peak_tb_k alternative paths, and the caveat that N can shift by factors of several over 10-100 K. It does not state the output units or return structure, nor what happens if both tau and peak_tb_k are supplied or if none of the partition options are given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, followed by the defining equations and then limits, which is a sensible order. The dense symbolic notation is information-bearing rather than filler, though the unlabeled formulas assume a specialist reader and the description is long for a single computation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, physics-heavy tool with no annotations, no output schema, and zero schema descriptions, the equations and the tau/Q explanations supply most of what an agent needs to populate arguments correctly. Missing pieces are output units and the mutually exclusive handling of tau vs peak_tb_k and the partition options, plus any mention of the uncertainty parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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, and it largely does: the formulas tie W, nu, A_ul, E_u, g_u, T_ex, T_bg, and beam_filling to explicit physical roles, and the tau paragraph explains peak_tb_k as an alternative observable and lays out three mutually exclusive sources for Q (scalar, [[T,Q]] table, linear rotor B). The one notable gap is w_err_k_kms, which is never mentioned, leaving the uncertainty-propagation behavior unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete statement of what is computed: total column density from a single line under LTE, with a literature reference. It is clearly distinguishable from siblings such as rotational_diagram or dust_mass_from_flux, though it does not explicitly name sibling tools or say when to prefer them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing 'Limits' sentence gives real validity conditions (T_ex must be assumed; a single line cannot test LTE), which is indirect guidance about when this tool is appropriate. However, it never states prerequisites, when to choose rotational_diagram for Q(T), or what to do instead when LTE cannot be assumed, so usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.