Skip to main content
Glama

Lumis — Life Sciences CRM Migration Intelligence

PyPI Python License

Lumis is an MCP server that delivers expert-level intelligence for life sciences CRM migrations. It equips AI assistants with a curated knowledge base covering module mapping, regulatory compliance, integration architecture, sync troubleshooting, performance guidance, data validation, decision trees, and operational gotchas — so every recommendation is grounded in domain expertise, not guesswork.

Quick Start

pip install lumis-mcp

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "lumis": {
      "command": "lumis-mcp"
    }
  }
}

Restart Claude Desktop. You'll see the Lumis tools in the tool picker.

Claude Code CLI

pip install lumis-mcp
claude mcp add lumis -- lumis-mcp

uvx (no install)

{
  "mcpServers": {
    "lumis": {
      "command": "uvx",
      "args": ["lumis-mcp"]
    }
  }
}

Remote (Claude.ai / OpenAI)

Connect to the hosted API at https://api.lumis-lifesciences.com/mcp with your API key in the X-Api-Key header. Sign up at lumis-lifesciences.com.

Related MCP server: Medical Billing MCP

What You Get

Tool

What it does

Free?

assess_migration_readiness

Complexity score, module mappings, gaps, risks, timeline

Yes

get_taxonomy

Browse the value chain taxonomy — phases, areas, categories

Yes

get_terminology

Map incorrect legacy terms to correct modern platform terms

Yes

search_knowledge

Full-text search across 950+ curated entries

get_module_mapping

Legacy module to cloud equivalent with field-level gaps

get_gotchas

Non-obvious pitfalls for a module or country

traverse_decision_tree

Interactive decision trees for module selection, migration paths

get_country_rules

GDPR, APPI, FDA 21 CFR Part 11, EU sample limits, US state rules

run_validation

Diagnose configuration issues from reported symptoms

get_agent_workflow

Structured workflows for migration, implementation, audit, ops

plan_multi_country_rollout

Wave-based rollout — country clustering, sequencing, timelines

compare_entities

Side-by-side: countries, modules, regulatory frameworks

plan_system_validation

CSV/CSA validation plan — GAMP, Part 11, Annex 11, deliverables

Example Prompts

Try these after connecting:

  • "Assess migration readiness for a company using CLM, Samples, Events, and Approved Email across 6 countries with 2,000 users."

  • "What are the top gotchas when migrating sample management?"

  • "Get the country rules for Germany — GDPR constraints on consent management and sample distribution limits."

  • "Plan a 35-country rollout for CLM, Samples, and Events including US and Japan."

  • "What does 21 CFR Part 11 require for electronic signatures in sample management?"

  • "Compare Germany vs. France — which has stricter sample management requirements?"

Knowledge Base

Lumis ships with 950+ curated knowledge entries spanning the pharma value chain:

  • Module Mapping — Legacy CRM to cloud platform with field-level gaps

  • Regulatory Compliance — 21 CFR Part 11, EU GDPR, Japan APPI, EU sample limits, US state HCP rules

  • Sync Engine Architecture — Offline-first patterns, conflict resolution, delta sync

  • Integration Patterns — REST API, MDM feeds, SSO/OAuth, ERP, middleware

  • Performance & Scale — Data volume planning, governor limits, mobile sync benchmarks

  • Multi-Country Rollout — Country clustering, wave sequencing, anti-patterns

  • Decision Trees — Module selection, migration path, regulatory compliance

  • Gotchas — 65+ non-obvious pitfalls and edge cases

  • Validation Rules — Symptom-based diagnostic rules

  • System Validation (CSV/CSA) — GAMP 5, Part 11 mapping, risk assessment framework

Pricing

Tier

Price

Access

Free

$0

Migration assessment + terminology + taxonomy

Starter

$49/mo

Full knowledge base — individual consultants

Professional

$199/mo

Full KB + priority support — implementation teams

Enterprise

Contact sales

Custom knowledge overlays + SLA

The free tier requires no API key.

Architecture

lumis-mcp/
├── server.py              # MCP server with 13 tools
├── knowledge/             # 950+ entries across 280+ files
│   ├── _foundation/       # Org strategy, regulatory, terminology, validation
│   ├── _meta/             # Value chain taxonomy
│   ├── commercialization/ # CRM, safety, regulated content, market access
│   └── clinical/          # Clinical development (expanding)
├── agents/                # 4 agent workflow definitions
├── prompts/               # Agent persona system prompts
└── lumis_mcp/             # PyPI package wrapper

Requirements

  • Python 3.10+

  • mcp>=1.0,<3.0

  • pyyaml>=6.0

License and Intellectual Property

This software and its knowledge base are proprietary and copyright Lumis AI 2024-2026. All rights reserved.

  • Software: Licensed for use via MCP clients only. See LICENSE.

  • Knowledge Base: 950+ curated entries are trade secrets. Extraction, scraping, reproduction, or use for training ML models is prohibited.

  • Third-party notices: See NOTICE.

Unauthorized copying or redistribution will be pursued under applicable law.


Built by Lumis AI — migration intelligence for life sciences.

Available Tools

13 tools
assess_migration_readinessB

Run a migration readiness assessment for any commercialization area.

Args: source_platform: Current platform (e.g. 'Legacy CRM', 'Argus Safety', 'Veeva Vault') modules_in_use: Comma-separated list of modules currently in use country_count: Number of countries in scope user_count: Approximate number of users area: Commercialization area — 'crm', 'safety-pv', 'regulated-content' (default 'crm')

NameRequiredDescriptionDefault
areaNocrm
user_countYes
country_countYes
modules_in_useYes
source_platformYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, yet it says nothing about whether the assessment is read-only or mutating, whether it requires external system access, how expensive or slow it is, or how results are produced. It does at least imply the output is scored guidance for a migration, but that is inference rather than disclosure.

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 one-line purpose statement is front-loaded, and the Args block is compact and scannable. The docstring framing ('Args:') is slightly machine-y but every line carries information; nothing is wasted.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and all parameters are covered. However, for a five-parameter assessment tool with no annotations, the description omits the behavioral envelope — cost, prerequisites, and what makes an assessment meaningful — leaving an agent able to call it correctly but without expectations about the call.

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: every one of the five parameters is documented with meaning, and concrete examples are given for source_platform ('Legacy CRM', 'Argus Safety', 'Veeva Vault') and area ('crm', 'safety-pv', 'regulated-content', default 'crm'). It does not state units or plausible ranges for country_count/user_count, or the accepted module name vocabulary, leaving some ambiguity.

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?

States a specific verb and resource — 'Run a migration readiness assessment' — scoped to 'any commercialization area', which is a clear action an agent can distinguish from sibling read/lookup tools. It stops short of naming which sibling (e.g. plan_multi_country_rollout, plan_system_validation) to prefer under which conditions.

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

Usage Guidelines2/5

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

No guidance on when to call this versus plan_multi_country_rollout, plan_system_validation, or run_validation, all of which sit adjacent in the workflow. The only hint is that it applies to 'any commercialization area', which implies breadth but not selection criteria or prerequisites.

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

compare_entitiesA

Compare two entities side-by-side — countries, modules, regulatory frameworks, or any knowledge base entries.

Args: entity_a: First entity to compare (e.g. 'Germany', 'CLM', 'Argus') entity_b: Second entity to compare (e.g. 'France', 'Events', 'Vault Safety') dimension: Optional focus dimension (e.g. 'sample rules', 'field mapping', 'regulatory') phase: Value chain phase filter (default 'all') area: Area filter (default 'all')

NameRequiredDescriptionDefault
areaNoall
phaseNoall
entity_aYes
entity_bYes
dimensionNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It explains the entity comparison and filter defaults, but does not state whether this is a read-only search, whether it traverses the entire knowledge base, or any auth/rate-limit behavior. The presence of an output schema covers return values, keeping this at a minimum-viable level.

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 first sentence front-loads the purpose efficiently, and the Args list documents parameters without excessive prose. Minor redundancy in restating defaults is acceptable for clarity.

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

Completeness3/5

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

With 5 parameters, no annotations, and an output schema, the description covers parameter semantics but omits when-to-use guidance and behavioral boundaries. It is adequate for invocation but incomplete for confidently selecting the tool against siblings.

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 largely does: it gives concrete examples for entity_a, entity_b, dimension, and explains phase/area as filters with defaults. It does not enumerate allowed values for phase/area beyond 'all', preventing a 5.

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 clearly states the verb and resource: 'Compare two entities side-by-side.' It lists concrete entity types (countries, modules, regulatory frameworks, knowledge base entries) so the agent knows the scope. It does not explicitly differentiate from siblings, though no sibling is a comparison tool.

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?

Usage is implied by the comparison purpose and the examples, but the description never says when to choose this tool over search_knowledge or get_country_rules, nor does it state exclusions or prerequisites. The agent must infer the appropriate context.

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

get_agent_workflowA

Get the workflow, phases, and checklists for a specific Lumis agent.

Args: agent: Agent name — 'migration', 'implementation', 'audit', or 'operations'

NameRequiredDescriptionDefault
agentYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/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 makes clear this is a read of static workflow content, which implies safety, but says nothing about behavior for an unrecognized agent name or whether the result varies by configuration. The presence of an output schema excuses it from describing return values.

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?

Two short, front-loaded sentences with zero waste. The 'Args:' block is slightly redundant formatting but not harmful, and the allowed values are placed where they are easy to scan.

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

Completeness5/5

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

For a single-parameter, read-only lookup with an output schema, the description supplies what the schema lacks (valid values) and what the tool returns. Nothing needed to invoke it correctly is missing.

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% and the schema defines no enum, so the description's enumeration of the four valid agent values ('migration', 'implementation', 'audit', 'operations') adds real constraint the agent would otherwise lack. It does not explain case sensitivity or what happens with other values.

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 states a specific verb and resource (get the workflow, phases, and checklists for a Lumis agent) and names the content returned. It does not distinguish this tool from siblings such as get_gotchas or traverse_decision_tree, which also retrieve agent-oriented guidance.

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

Usage Guidelines2/5

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

There is no guidance on when to call this tool versus the many sibling lookup tools, nor any prerequisite or sequencing hint. The only implied usage comes from the generic phrase 'for a specific Lumis agent', leaving the agent to infer its place in the workflow.

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

get_country_rulesA

Get regulatory and configuration rules for a specific country.

Foundation rules (GDPR, APPI, data residency) are always included. Use area to add domain-specific rules (e.g. 'safety-pv' for adverse event reporting timelines).

Args: country: Country name or code (e.g. 'Germany', 'DE', 'Japan') module: Optional module filter (e.g. 'Sample Management', 'AE Reporting') phase: Value chain phase filter (default 'all') area: Area filter (default 'all')

NameRequiredDescriptionDefault
areaNoall
phaseNoall
moduleNo
countryYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose genuinely non-obvious behavior: foundation rules are always included regardless of filters, and filters narrow rather than replace the base set. That composition semantic is the key thing an agent would otherwise get wrong. It leaves the read-only nature implicit in 'Get' and says nothing about size or cost of the response, but an output schema exists to cover the return shape.

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

Conciseness5/5

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

Front-loaded: the core purpose is sentence one, the composition rule second, the filter mechanism third, and the Args block last. Nothing is redundant, and the Args listing earns its place given 0% schema description coverage.

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 4-parameter read tool with an output schema and no annotations, the description covers purpose, result composition, and three of four parameters with examples. It is nearly complete; the only shortfall is the under-specified 'phase' filter and the absence of any hint about result size or how filters interact with each other.

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: country accepts a name or ISO-style code with three examples, module is optional with two example values, and phase/area are documented as filters with 'all' defaults. The gap is 'phase' — 'Value chain phase filter' gives no example values or enumeration, so an agent cannot construct a valid value from the description alone.

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 clear verb+resource: 'Get regulatory and configuration rules for a specific country.' It scopes the retrieval to a country and explains the composed result set (foundation rules plus area-specific rules). It does not explicitly distinguish itself from siblings such as get_terminology, get_taxonomy, or search_knowledge, which an agent might reasonably confuse with a rules lookup.

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?

It gives useful implied guidance: foundation rules (GDPR, APPI, data residency) are always returned, and 'area' is the lever for domain-specific rules, with a concrete example ('safety-pv'). However, it never says when to prefer this tool over search_knowledge or get_taxonomy, nor when not to call it.

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

get_gotchasC

Get non-obvious pitfalls and gotchas for a module, country, or domain area.

Args: module: Filter by module name (optional) country: Filter by country (optional) phase: Value chain phase filter (default 'all') area: Area filter — 'crm', 'safety-pv', etc. (default 'all')

NameRequiredDescriptionDefault
areaNoall
phaseNoall
moduleNo
countryNo

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations at all, so the description carries the full burden. It doesn't say whether results are exhaustive or ranked, whether the filters are combined with AND or OR, or what happens when a filter matches nothing. Only the read-shaped 'get' phrasing hints at safety.

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

Conciseness3/5

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

The opening sentence is well front-loaded, but the Args block repeats schema defaults verbatim and adds no information, so a chunk of the text doesn't earn its place.

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

Completeness3/5

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

An output schema exists, so return values needn't be described, and four optional filters keep the call surface simple. But with zero annotation and zero schema coverage, the description should explain filter semantics and relationship to sibling knowledge tools, and it doesn't.

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

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description's Args block is the only documentation — and it merely restates parameter names with defaults already in the schema. It doesn't explain valid values for 'phase' or 'module' (no enums exist), nor the default semantics of empty string vs 'all'.

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?

States a specific verb (get) and resource (non-obvious pitfalls/gotchas) with filterable dimensions (module, country, domain area), which distinguishes it from siblings like get_country_rules. It doesn't explicitly name how it differs from get_country_rules, which is the nearest-sounding sibling, so it stops short of a 5.

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

Usage Guidelines2/5

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

No guidance on when to use this versus get_country_rules, search_knowledge, or traverse_decision_tree, all of which could plausibly surface similar knowledge. Usage has to be inferred entirely from the filters.

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

get_module_mappingA

Get the target platform equivalent for a source module.

Args: source_module: The source module name (e.g. 'CLM', 'Legacy Events', 'AE Reporting') area: Which area to search — 'crm', 'safety-pv', 'regulated-content', etc. (default 'crm')

NameRequiredDescriptionDefault
areaNocrm
source_moduleYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. 'Get' implies a read-only lookup, but the description does not state what happens if no mapping exists, whether matching is exact, or whether any permissions are required.

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 sentence, and the Args section is useful because the schema has no parameter descriptions. The docstring-style formatting is slightly rough, but there is little wasted text.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. Still, for a lookup tool with no annotations and many sibling tools, the description leaves gaps around when to use it versus taxonomy/terminology tools and how to interpret a missing mapping.

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 define the parameters. It does so meaningfully: source_module includes examples like 'CLM' and 'AE Reporting', and area lists values such as 'crm' and 'safety-pv' with the default 'crm'. The area values are not fully enumerated, but the added semantic value is substantial.

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?

States a specific verb and resource: 'Get the target platform equivalent for a source module.' This is clear enough to distinguish it from most siblings, but it does not explicitly differentiate it from related lookup tools such as get_taxonomy or get_terminology.

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 description provides area choices and example source modules, which imply how the tool is used. However, it does not state when to use this tool instead of sibling tools, nor does it give exclusions or prerequisites.

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

get_taxonomyA

Get the Lumis value chain taxonomy — phases, areas, and available knowledge categories.

Call this first to understand what domains Lumis covers and how knowledge is organized.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

There are no annotations, so the description carries the full behavioral burden. It implies a read-only taxonomy lookup and adds useful sequencing context, but it does not explicitly state safety, side effects, or whether the result is cached/static. For a zero-parameter retrieval tool this is adequate but not rich.

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

Conciseness5/5

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

Two short sentences, front-loaded with the resource and its contents, followed by the key usage instruction. Every sentence contributes directly to understanding or invocation.

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?

The output schema exists, so the description need not document return values. With zero params and a clear overview purpose, it is nearly complete; only explicit read-only/behavioral confirmation is missing.

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?

The tool has zero parameters, so there are no parameter semantics to explain and the baseline is 4. The description cannot add parameter-level detail, and none is needed.

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

Purpose5/5

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

The description uses a specific verb/resource pair ('Get the Lumis value chain taxonomy') and enumerates the returned components: phases, areas, and knowledge categories. It also distinguishes itself as a foundational overview tool with 'Call this first,' which helps separate it from siblings like search_knowledge or get_terminology.

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

Usage Guidelines4/5

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

It gives explicit sequencing guidance: 'Call this first to understand what domains Lumis covers and how knowledge is organized.' However, it does not name alternatives or state when not to use it, so it is clear but lacks exclusion guidance.

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

get_terminologyB

Look up correct vs incorrect terminology to avoid hallucinations.

Args: term: Term to look up (e.g. 'CLM', 'Approved Email', 'ICSR', 'CIOMS')

NameRequiredDescriptionDefault
termNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It indicates the tool returns correct-vs-incorrect terminology, which is useful, but does not explicitly state that it is read-only or describe the data source, coverage, or any auth/rate-limit behavior.

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

Conciseness5/5

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

The description is short and front-loaded: purpose first, then parameter examples. The Args block is compact and there is no redundant prose.

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

Completeness3/5

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

For a simple one-parameter lookup with an output schema, the description covers purpose and gives example terms. However, it omits when to prefer it over sibling knowledge tools and does not clarify the meaning of the empty default term, leaving gaps.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single parameter has no description. The description compensates partially by naming the parameter and giving example terms ('CLM', 'Approved Email', 'ICSR', 'CIOMS'), but it does not explain the empty default or requiredness.

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 uses a specific verb ('Look up') and resource ('correct vs incorrect terminology'), and states its purpose (avoid hallucinations). It does not distinguish itself from sibling tools like get_taxonomy or search_knowledge, so a 4 rather than 5.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as get_taxonomy or search_knowledge. The purpose ('avoid hallucinations') implies a use case, but there are no conditions, exclusions, or routing instructions.

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

plan_multi_country_rolloutA

Plan a wave-based multi-country rollout for any commercialization area.

Args: country_count: Total countries in scope modules: Comma-separated list of modules to deploy regions: Comma-separated regions in scope (e.g. 'EU, Americas, APAC, LATAM') includes_us: Whether the US is in scope (adds regulatory complexity) includes_japan: Whether Japan is in scope (requires standalone wave) area: Commercialization area — 'crm', 'safety-pv', 'regulated-content' (default 'crm')

NameRequiredDescriptionDefault
areaNocrm
modulesYes
regionsYes
includes_usNo
country_countYes
includes_japanNo

Output Schema

NameRequiredDescription
resultYes

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 must carry the behavioral burden. It does add useful domain semantics ('includes_us adds regulatory complexity', 'includes_japan requires standalone wave'), signalling how inputs alter the plan, but it never states whether this is a pure computation or has side effects, nor how failures are handled.

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 one-line purpose statement is front-loaded and the Args block is a tight, scannable list. A small amount of redundancy remains between the Args entries and the schema's parameter titles, but nothing is padded.

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?

An output schema exists, so return values need not be explained, and the description covers the full input surface including the non-obvious flag semantics. The remaining gap is the operational profile — read-only vs. side-effecting, and whether the plan is persisted — which matters given zero annotation coverage.

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 does the real work: it documents all six parameters and goes beyond titles by listing the accepted 'area' values ('crm', 'safety-pv', 'regulated-content'), giving a regions format example, and explaining the planning consequences of the US and Japan flags. A few entries ('country_count: Total countries in scope') remain near-tautological.

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 gives a specific verb+resource ('Plan a wave-based multi-country rollout') scoped to a commercialization area, which clearly separates it from the get_/run_/compare_/assess_ siblings. It does not explicitly distinguish itself from plan_system_validation, the closest planning sibling, so it falls short of a 5.

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?

Usage is only implied by the parameter set (countries, regions, modules, US/Japan flags) — an agent can infer this is the multi-country rollout planner, but there is no explicit 'use this when…' or 'use plan_system_validation instead when…' guidance. No exclusions or alternatives are named.

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

plan_system_validationA

Plan a computer system validation (CSV/CSA) for a life sciences system.

Returns applicable regulations, methodology recommendation, GAMP classification, deliverables list, effort estimate, gap assessment areas, and decision tree guidance.

This tool supports planning for 21 CFR Part 11, EU Annex 11, GAMP 5, and related regulatory requirements across CRM, clinical, safety, and manufacturing systems.

Args: system_name: Name of the system being validated (e.g. 'Salesforce CRM', 'Veeva Vault', 'SAP QM') system_type: Type of system — 'saas', 'cots', 'configured', 'custom', 'hybrid' platform: Platform vendor if applicable (e.g. 'Salesforce', 'Veeva', 'SAP', 'Oracle') regulatory_geography: Jurisdiction — 'US', 'EU', 'Japan', 'Global', 'WHO' (default 'US') gxp_context: GxP context — 'GMP', 'GCP', 'GLP', 'GPvP', 'GDP', or comma-separated combo modules_in_use: Comma-separated modules (e.g. 'Sample Management, Events, Consent') has_mobile: Whether mobile/offline is in scope (adds validation complexity) has_integrations: Whether system integrations are in scope has_custom_code: Whether custom code (e.g. Apex, custom middleware) exists user_count: Approximate number of users country_count: Number of countries in scope

NameRequiredDescriptionDefault
platformNo
has_mobileNo
user_countNo
gxp_contextNo
system_nameYes
system_typeYes
country_countNo
modules_in_useNo
has_custom_codeNo
has_integrationsNo
regulatory_geographyNoUS

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It discloses that the tool returns regulations, methodology, GAMP classification, deliverables, effort estimate, gap areas, and decision tree guidance, but it does not state whether the operation is read-only, whether it has side effects, or what permissions are required.

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 description is front-loaded with purpose and return values, followed by regulatory scope and a structured Args section. It is appropriately sized for an 11-parameter tool, though the regulatory-scope sentence is somewhat redundant after the purpose statement.

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?

Given the tool's complexity, the description covers purpose, return categories, regulatory domains, and all parameter semantics. It is largely complete for invocation, but it could better address sibling-tool relationships and the read-only nature of a planning operation.

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 for all 11 parameters. It lists each argument with useful examples and allowed values, such as system_type values ('saas', 'cots', 'configured', 'custom', 'hybrid') and gxp_context values. Minor gaps remain, such as not restating defaults for booleans or explaining how user_count affects the output.

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 clearly states a specific verb and resource: planning a computer system validation (CSV/CSA) for a life sciences system. It specifies the regulatory context and system domains, but it does not explicitly distinguish itself from sibling tools such as run_validation or traverse_decision_tree.

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?

Usage is implied by the verb 'Plan' and the statement that the tool supports planning for 21 CFR Part 11, EU Annex 11, GAMP 5, and related requirements. However, the description gives no explicit when-to-use guidance, exclusions, or alternatives versus siblings like run_validation.

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

run_validationB

Run a validation rule or find rules matching a reported symptom.

Args: rule_id: Specific rule ID to run (optional) symptom: User-reported problem to match against rules (optional) area: Area to validate — 'crm', 'safety-pv', etc. (default 'crm')

NameRequiredDescriptionDefault
areaNocrm
rule_idNo
symptomNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

Since there are no annotations, the description must carry the full burden of behavioral transparency. It merely lists arguments and scope without detailing error handling, execution state, or potential failure modes (e.g., what happens if no rules match a symptom).

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 description is well-structured, beginning with a clear purpose statement followed by a detailed argument list. It uses concise language without being overly simplistic.

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

Completeness2/5

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

Although the input parameters are explained, the description is incomplete for a complex execution tool. Without output schema or comparative guidance, it is impossible for an agent to confidently decide if `run_validation` is the correct next step compared to other sibling tools.

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?

Given that schema description coverage is 0%, the description effectively adds value by explaining the meaning of each parameter—for instance, clarifying that 'symptom' is a 'user-reported problem' and 'area' specifies the domain like 'crm'.

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 clearly identifies two modes of operation: running a specific rule via ID, or finding rules based on a symptom. This provides a good functional definition of the tool's purpose.

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

Usage Guidelines2/5

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

The description lists what the tool can do (run or find) but offers no guidance on when to use it versus alternatives like 'plan_system_validation' or 'search_knowledge'. It fails to explain the intended operational workflow.

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

search_knowledgeA

Search the Lumis knowledge base across the life sciences value chain.

Foundation knowledge (org strategy, regulatory, terminology) is always included. Use phase and area to narrow scope.

Args: query: Natural language search query phase: Value chain phase — 'discovery', 'clinical', 'commercialization', 'foundation', or 'all' area: Area within phase — e.g. 'crm', 'safety-pv', 'regulated-content', 'market-access', or 'all' category: Knowledge category — 'modules', 'decision-trees', 'gotchas', 'country-rules', 'validation-rules', 'terminology', 'org-strategy', or 'all' limit: Maximum results to return (default 5)

NameRequiredDescriptionDefault
areaNoall
limitNo
phaseNoall
queryYes
categoryNoall

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/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 one meaningful behavior — foundation knowledge is unconditionally included in every result set — which an agent could not otherwise know. It says nothing about ranking, whether results are paginated, or whether the search is read-only (implied but unstated), leaving real behavioral gaps.

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?

Front-loaded with the purpose and the scoping hint before the parameter list, and every line is informative. The Args block is somewhat verbose relative to a normal description, but it is justified because the schema itself has no per-field documentation.

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?

An output schema exists, so return-shape explanation is unnecessary, and the parameters — the real gap in the structured data — are fully covered. What remains missing is the relationship to sibling retrieval tools, which matters given twelve siblings that overlap in domain.

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

Parameters5/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 entirely, and it does: each of the five parameters is explained, with the allowed values for phase, area, and category spelled out and example area tokens ('crm', 'safety-pv') provided. The default for limit is restated as a semantic meaning, not just a schema value.

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?

States a concrete verb and resource: 'Search the Lumis knowledge base across the life sciences value chain.' The added note that foundation knowledge is always included helps an agent understand what a result set contains. It does not, however, explicitly contrast itself with specific-fetch siblings like get_country_rules or get_terminology.

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?

'Use phase and area to narrow scope' is the only usage guidance, and it addresses parameter tuning rather than tool selection. There is no statement of when to use this broad search versus the many targeted getters in the sibling list, forcing the agent to infer that choice.

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

traverse_decision_treeB

Walk a decision tree given user inputs to produce a recommendation.

Args: tree_name: Name of the decision tree (e.g. 'module-selection', 'migration-path', 'org-strategy') inputs: JSON string of input parameters for the tree phase: Value chain phase filter (default 'all') area: Area filter (default 'all')

NameRequiredDescriptionDefault
areaNoall
phaseNoall
inputsYes
tree_nameYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description has to carry the full behavioral burden. It conveys that the tool is a computation returning a recommendation (no side effects implied) and that tree selection steers the outcome, but says nothing about whether tree_name must match a known tree, what happens with invalid inputs, or how filters interact with the traversal.

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 sentence is front-loaded and short, followed by a compact per-argument list with no filler. The Args block mostly mirrors the schema, which is mild redundancy but conventional and brief.

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

Completeness3/5

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

An output schema exists, so return shape needn't be explained. Still missing for a call that hinges on a free-form JSON payload: the expected input key structure, valid tree names, and valid phase/area values — all of which the agent would otherwise have to guess.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the Args block is the only source of parameter meaning and it does name all four params with examples and defaults. However, the most consequential parameter, `inputs` as a free-form JSON string, is left with undefined required keys, and no valid values for phase/area are given.

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?

States a concrete verb and resource: 'walk a decision tree given user inputs to produce a recommendation.' An agent knows exactly what the tool does and that the output is a recommendation, though the description never distinguishes this from tree-like siblings such as get_agent_workflow or get_taxonomy.

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?

Usage is only implied by the example tree names ('module-selection', 'migration-path', 'org-strategy'), which hint at planning and selection scenarios. There is no explicit when-to-use/when-not guidance and no statement of how this relates to siblings like plan_multi_country_rollout or assess_migration_readiness.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv1.0.1
    • First observedassess_migration_readiness
    • First observedcompare_entities
    • First observedget_agent_workflow
    • First observedget_country_rules
    • First observedget_gotchas
    • First observedget_module_mapping
    • First observedget_taxonomy
    • First observedget_terminology
    • First observedplan_multi_country_rollout
    • First observedplan_system_validation
    • First observedrun_validation
    • First observedsearch_knowledge
    • First observedtraverse_decision_tree

TDQS

A3.6/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have clearly distinct jobs: retrieval (get_country_rules, get_terminology, get_module_mapping, get_gotchas), action-oriented planning (assess_migration_readiness, plan_multi_country_rollout, plan_system_validation), and generic utilities (search_knowledge, compare_entities, traverse_decision_tree). The main blur is that search_knowledge exposes category filters ('country-rules', 'gotchas', 'terminology', 'decision-trees') that substantially overlap with four specialized tools, so an agent could plausibly reach for the wrong one. Descriptions suggest the specialized tools return structured/filtered output, which mitigates but does not eliminate the overlap.

Naming Consistency5/5

All 13 names follow a consistent snake_case verb_noun pattern (get_*, run_*, search_*, traverse_*, assess_*, plan_*, compare_*). Verbs are chosen meaningfully rather than arbitrarily, and there are no mixed conventions or versioned/suffixed outliers.

Tool Count5/5

Thirteen tools is squarely in the well-scoped range for a knowledge-plus-advisory server, with each tool mapping to a distinct knowledge category or planning task. Nothing feels like filler, and the surface is not so large that selection becomes a burden.

Completeness4/5

The read-only advisory surface is well covered: taxonomy discovery, knowledge search, rules/terminology/gotchas retrieval, decision trees, comparison, and three substantive planning tools (migration readiness, rollout waves, CSV). Minor gaps exist — analytical tools default to commercialization areas ('crm', 'safety-pv', 'regulated-content') with no equivalent depth for discovery/clinical, and there is no way to enumerate available decision trees or agent workflows other than via get_taxonomy/get_agent_workflow. These are workable-around rather than blocking.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers