Skip to main content
Glama
linancn

TianGong-LCA-MCP Server

by linancn

title: TianGong LCA MCP README EN docType: guide scope: repo status: active authoritative: false owner: mcp language: en whenToUse:

  • when you need English user-facing MCP package setup, Docker usage, local startup, or inspector examples whenToUpdate:

  • when English startup commands, Docker usage, package invocation, or user-facing MCP examples change checkPaths:

  • README.md

  • README_CN.md

  • package.json

  • Dockerfile

  • mcp_config.json

  • src/index.ts

  • src/index_server.ts

  • src/index_server_local.ts

  • src/http_app.ts

  • src/http_app_local.ts lastReviewedAt: 2026-09-01 lastReviewedCommit: a349c4ad3068dc76a7b43417fa5ead2ee6e0e6d3 lastReviewedNote: 'Reviewed for Issue #72: remote HTTP accepts direct Supabase OAuth access JWTs and keeps all server-side authorization state and compatibility modes removed.' related:

  • AGENTS.md

  • .docpact/config.yaml

  • DEV_EN.md

  • README_CN.md


TianGong-LCA-MCP

中文 | English

TianGong LCA Model Context Protocol (MCP) Server supports STDIO and Streamable Http protocols.

Environment

Copy .env.example and populate its Supabase issuer, publishable key, exact admitted public OAuth client IDs, and allowed browser origins. OAuth authentication requires no Redis, confidential client secret, or server-side session encryption key.

GLAD dataset search tools additionally require a GLAD API key:

GLAD_API_KEY=your-glad-api-key
GLAD_API_BASE_URL=https://www.globallcadataaccess.org/api/v1

Related MCP server: Example MCP SSE Server

Remote OAuth

Remote Streamable HTTP is an OAuth 2.1 protected resource. A compatible MCP host discovers /.well-known/oauth-protected-resource/mcp, follows its Supabase Auth authorization server, opens the user's browser, and completes Authorization Code with S256 PKCE. The user signs in and consents in Next; usernames and passwords are never entered into the AI or MCP host.

Supabase issues the access and rotating refresh tokens directly to the public MCP client. The client stores its refresh token locally and sends the short-lived Supabase ES256 access JWT on every MCP request. The server verifies signature, issuer, audience, expiry, role/session, and exact client_id; Edge/PostgREST then re-verify the same user/client context and enforce RLS capabilities.

Dynamic Client Registration remains disabled. Operators register exact public clients and loopback callbacks in Supabase, then list those UUID client IDs in MCP_OAUTH_ALLOWED_CLIENT_IDS_JSON. Unknown, malformed, expired, Cognito, and password/API-key bearers fail the canonical OAuth challenge without fallback I/O.

The MCP origin exposes no authorization, token, refresh, revoke, callback, registration, demo, or authorization-code display endpoint. Supabase Auth owns those protocol operations and Next owns /oauth/consent.

Starting MCP Server

Client STDIO Server

corepack install --global pnpm@11.24.0
pnpm add --global @tiangong-lca/mcp-server

pnpm dlx dotenv-cli -e .env -- tiangong-lca-mcp-stdio

Using Docker

# Build MCP server image using Dockerfile (optional)
docker build -t linancn/tiangong-lca-mcp-server:0.2.0 .

# Pull MCP server image
docker pull linancn/tiangong-lca-mcp-server:0.2.0

# Start MCP server using Docker
docker run -d \
    --name tiangong-lca-mcp-server \
    --publish 9278:9278 \
    --env-file .env \
    linancn/tiangong-lca-mcp-server:0.2.0

Local Testing

STDIO Server

# Launch the STDIO Server using MCP Inspector
pnpm start

Streamable Http Server

pnpm start:server

Streamable Http Local Server

pnpm start:server-local

The HTTP start commands launch MCP Inspector through a cross-platform Node argv wrapper and inject the development-only Inspector environment without POSIX shell syntax.

Available Tools

7 tools
LCA_Calculation_Guidance_ToolC

Get the workflow, which should be followed for Life Cycle Assessment (LCA) Calculations to Obtain Life Cycle Impact Assessment (LCIA) Results

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions getting a workflow, but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, what format the workflow is in (e.g., text, structured data), or any rate limits. This leaves significant gaps in understanding how the tool behaves.

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

Conciseness4/5

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

The description is a single, clear sentence that efficiently states the tool's purpose. It's front-loaded and avoids unnecessary words, though it could be slightly more specific to improve clarity without losing conciseness.

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?

Given the complexity of LCA calculations and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the workflow output looks like (e.g., steps, format), how it integrates with other tools, or any dependencies, leaving the agent with insufficient context for effective use.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, earning a baseline score of 4 as it doesn't need to compensate for any schema gaps.

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

Purpose3/5

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

The description states the tool provides a workflow for LCA calculations to obtain LCIA results, which is a clear purpose. However, it's somewhat vague about what exactly the workflow entails (e.g., steps, format) and doesn't explicitly differentiate from sibling tools like OpenLCA_Impact_Assessment_Tool, which might also relate to LCIA results.

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 implies usage for LCA calculations to get LCIA results, but it doesn't specify when to use this tool versus alternatives like OpenLCA_Impact_Assessment_Tool or other siblings. No explicit guidance on prerequisites, exclusions, or context is provided.

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

OpenLCA_Impact_Assessment_ToolC

Calculate life cycle impact assessment using OpenLCA.

ParametersJSON Schema
NameRequiredDescriptionDefault
productSystemYesOpenLCA product system ID
impactMethodYesOpenLCA impact method ID
serverUrlNoOpenLCA IPC server URLhttp://localhost:8080

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Calculate' but doesn't specify if this is a read-only or write operation, what permissions are needed, potential side effects, rate limits, or error handling. For a calculation tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration, earning its place fully.

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?

Given the complexity of a calculation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., impact scores, error messages), prerequisites like server setup, or how it interacts with sibling tools, leaving the agent with insufficient context for effective use.

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 100%, so the schema already documents all three parameters (productSystem, impactMethod, serverUrl) with descriptions. The description adds no additional meaning beyond what's in the schema, such as explaining relationships between parameters or usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.

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 action ('Calculate') and resource ('life cycle impact assessment using OpenLCA'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'LCA_Calculation_Guidance_Tool' or 'OpenLCA_List_LCIA_Methods_Tool', which might handle related but different operations.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'LCA_Calculation_Guidance_Tool' and 'OpenLCA_List_LCIA_Methods_Tool', it's unclear if this is for performing calculations, listing methods, or something else, leaving the agent without context for selection.

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

OpenLCA_List_LCIA_Methods_ToolC

List all LCIA methods using OpenLCA.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverUrlNoOpenLCA IPC server URLhttp://localhost:8080

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('List') but doesn't describe key traits like whether this is a read-only operation, potential rate limits, authentication needs, or what the output format looks like (e.g., list of method names or detailed objects). This leaves significant gaps for safe and effective use.

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 a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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?

Given the tool's moderate complexity (listing methods in a database context) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like safety, performance, or output details, which are crucial for an agent to use this tool effectively in a real-world scenario.

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 100%, with the single parameter 'serverUrl' fully documented in the schema. The description adds no additional parameter information beyond what the schema provides, such as default behavior or usage tips, so it meets the baseline for high schema coverage without compensating 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?

The description clearly states the verb ('List') and resource ('all LCIA methods') with the technology context ('using OpenLCA'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'OpenLCA_List_System_Processes_Tool' or 'OpenLCA_Impact_Assessment_Tool', which might have overlapping scopes in the same domain.

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 is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing an OpenLCA server running, or compare it to siblings like 'Search_Life_Cycle_Models_Tool' for more specific queries, leaving the agent without context for selection.

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

OpenLCA_List_System_Processes_ToolC

List all system processes using OpenLCA.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverUrlNoOpenLCA IPC server URLhttp://localhost:8080

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is to 'list all' but doesn't clarify if this is a read-only operation, what the output format might be, whether there are rate limits, or if authentication is required. This leaves significant gaps for a tool interacting with a server.

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 a single, direct sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the key action and resource, making it easy to parse quickly.

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?

Given the complexity of server interaction and lack of annotations or output schema, the description is insufficient. It doesn't address behavioral aspects like safety, response format, or error handling, which are critical for an agent to use this tool effectively in a real-world context.

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 100%, with the single parameter 'serverUrl' well-documented in the schema. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline for adequate coverage without compensating 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?

The description clearly states the action ('List all') and resource ('system processes') with the tool context ('using OpenLCA'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'Search_Processes_Tool' or 'Search_Life_Cycle_Models_Tool', which might also involve process-related operations.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or specify contexts where listing all system processes is preferred over searching or other operations, leaving the agent to infer usage from the tool name alone.

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

Search_Flows_ToolC

Search LCA flows data.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesQueries from user

TDQS

C2.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('Search') without any details on permissions, rate limits, response format, or other behavioral traits. This is inadequate for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is extremely concise with a single sentence, 'Search LCA flows data.', which is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration.

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?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'LCA flows data' includes, how results are returned, or any behavioral aspects. For a search tool with no structured support, this leaves significant gaps in understanding.

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?

The input schema has 100% description coverage, with the 'query' parameter documented as 'Queries from user'. The description adds no additional meaning beyond this, such as examples or search syntax. Given the high schema coverage, the baseline score of 3 is appropriate.

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

Purpose3/5

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

The description 'Search LCA flows data' clearly states the verb ('Search') and resource ('LCA flows data'), providing a basic understanding of the tool's function. However, it doesn't differentiate from sibling tools like 'Search_Life_Cycle_Models_Tool' or 'Search_Processes_Tool' that also search different data types, leaving the purpose somewhat vague in context.

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 offers no guidance on when to use this tool versus alternatives. It doesn't mention what 'LCA flows data' entails compared to other searchable data types (e.g., processes, models), nor does it provide any context, prerequisites, or exclusions for usage.

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

Search_Life_Cycle_Models_ToolC

Search LCA life cycle models data.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesQueries from user

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the basic action of searching without mentioning any behavioral traits like whether it's read-only, what format results return, if there are rate limits, authentication requirements, or how results are structured. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is extremely concise with a single sentence that directly states the tool's function. There's zero wasted language or unnecessary elaboration, making it efficiently front-loaded and appropriately sized for its limited content.

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?

Given the tool's purpose (searching specialized LCA data), no annotations, no output schema, and sibling tools with similar search functions, the description is incomplete. It doesn't explain what 'life cycle models data' encompasses, how results are returned, or how this differs from other search tools, leaving the agent with insufficient context to use it effectively.

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?

The description adds no parameter information beyond what the schema provides. With 100% schema description coverage (the single 'query' parameter is well-described in the schema), the baseline is 3. The description doesn't enhance understanding of the query parameter's purpose or usage context.

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

Purpose3/5

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

The description states the tool's purpose as searching LCA life cycle models data, which is clear but vague. It specifies the verb 'search' and resource 'LCA life cycle models data', but doesn't differentiate from sibling tools like Search_Flows_Tool or Search_Processes_Tool, leaving ambiguity about what specifically distinguishes this search function.

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 provides no guidance on when to use this tool versus alternatives. With sibling tools like Search_Flows_Tool and Search_Processes_Tool available, there's no indication of what type of data this searches or when it's the appropriate choice compared to other search tools in the server.

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

Search_Processes_ToolC

Search LCA processes data.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesQueries from user

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Search LCA processes data,' implying a read-only operation, but doesn't specify aspects like search scope (e.g., partial vs. exact matches), result format, pagination, or any limitations (e.g., rate limits). For a search tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence: 'Search LCA processes data.' It's front-loaded and wastes no words, making it highly concise and well-structured for its purpose.

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?

Given the tool's complexity (a search function with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the search returns, how results are structured, or any behavioral nuances. For a tool with no structured output or safety hints, more context is needed to be fully helpful.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'query' parameter documented as 'Queries from user.' The description doesn't add any meaning beyond this, such as examples or constraints on the query format. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.

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

Purpose3/5

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

The description 'Search LCA processes data' clearly states the action (search) and resource (LCA processes data), which is adequate. However, it doesn't distinguish this tool from its sibling 'Search_Flows_Tool' or 'Search_Life_Cycle_Models_Tool', which also search related data types. The purpose is clear but lacks sibling differentiation.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'OpenLCA_List_System_Processes_Tool' (which might list processes) and other search tools, there's no indication of context, prerequisites, or exclusions. It's a basic statement without usage instructions.

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

TDQS

B3.1/5.0
Disambiguation4/5

The tools have mostly distinct purposes with clear boundaries: guidance, calculation, listing methods/processes, and searching different data types (flows, models, processes). However, 'Search_Processes_Tool' and 'OpenLCA_List_System_Processes_Tool' could cause some confusion as both relate to processes, though one searches and the other lists from OpenLCA specifically.

Naming Consistency4/5

The naming follows a consistent pattern with a clear prefix structure (e.g., 'OpenLCA_' for OpenLCA-related tools, 'Search_' for search tools) and uses snake_case throughout. The only minor deviation is 'LCA_Calculation_Guidance_Tool' which doesn't fit the prefix pattern as neatly as others.

Tool Count5/5

With 7 tools, this is well-scoped for an LCA-focused server. It covers key operations like guidance, calculation, listing, and searching across different data types, making each tool earn its place without being overwhelming or insufficient.

Completeness3/5

The server covers core LCA operations such as guidance, calculation, listing, and searching, but has notable gaps. For example, there are no tools for creating, updating, or deleting LCA data (e.g., processes, models), which limits full lifecycle management and could cause agent failures in more complex workflows.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/linancn/tiangong-lca-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server