thingworx-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@thingworx-mcpshow me the live temperature from Pump-01"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
thingworx-mcp
MCP server for PTC ThingWorx, the IIoT platform. 8 tools for AI agents to read live state and trigger actions across the industrial asset graph.
What it wraps
The ThingWorx REST API surface that matters to an agent: Things, Properties, Services, ThingTemplates, and the model search index. ThingWorx is the IIoT platform used to wire SCADA, PLCs, MES, and plant equipment into a unified model. This MCP gives an agent the read path for live equipment state and the write path for setpoints and named operations, both env-gated independently because both can affect real industrial equipment.
Related MCP server: production-grade-mcp-agentic-system
Tools (8)
Tool | Purpose | Env gate |
| Inventory all Things in the model | none |
| Read a Thing's full metadata + surface area | none |
| Read live value of a Property | none |
| Update a Property value |
|
| Execute a named Service on a Thing |
|
| Inventory available ThingTemplates | none |
| Read a ThingTemplate's definition | none |
| Free-text search the model | none |
The two gates are independent. An operator can enable property writes (setpoints) without enabling service invocations (which can include emergency stops, PLC commands, downstream workflow triggers), and vice versa.
Install
pip install thingworx-mcpConfiguration
ThingWorx is self-hosted. Set:
export THINGWORX_BASE_URL="https://thingworx.your-company.com"
export THINGWORX_APP_KEY="your-application-key"
# Optional, default false. Enables write_property tool.
export THINGWORX_ALLOW_WRITE="true"
# Optional, default false. Enables invoke_service tool.
export THINGWORX_ALLOW_INVOKE="true"
# Optional, default true. Set to "false" for self-signed dev instances.
export THINGWORX_VERIFY_SSL="false"Generate the appKey in ThingWorx Composer under Security > Application Keys. The MCP uses the appKey header convention (not Bearer).
Use with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"thingworx": {
"command": "thingworx-mcp",
"env": {
"THINGWORX_BASE_URL": "https://thingworx.your-company.com",
"THINGWORX_APP_KEY": "your-application-key"
}
}
}
}Use with Hermes
mcp:
thingworx:
command: thingworx-mcp
env:
THINGWORX_BASE_URL: https://thingworx.your-company.com
THINGWORX_APP_KEY: ${THINGWORX_APP_KEY}
THINGWORX_ALLOW_WRITE: "true"Safety model
ThingWorx is wired to real PLCs and real equipment. The MCP defaults to read-only. Property writes and service invocations both require an explicit env opt-in, and the gates are independent so an operator who wants telemetry write capability does not have to also grant service invocation rights.
Failures from the upstream ThingWorx instance are surfaced as structured errors. Network and timeout errors are surfaced with status codes.
Development
git clone https://github.com/NoBanks/thingworx-mcp
cd thingworx-mcp
pip install -e ".[dev]"
pytestTests use respx for HTTP mocking, no live ThingWorx instance required.
License
MIT. See LICENSE.
About
Part of a 26 plus MCP server cohort at github.com/NoBanks, shipped by @livingagentic. Other industrial MCPs in the same cohort: workday-mcp, veeva-mcp, plaid-mcp, lambda-cloud-mcp. Built using the same factory pattern: env-gated for destructive actions, MIT licensed, install-ready, smoke-tested.
Available Tools
8 toolsget_thingA
Get metadata for a specific Thing by name. Returns the Thing's properties, services, events, and implemented ThingShapes. Used to discover the surface area of a Thing before reading or writing it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The Thing name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
In the absence of annotations, the description details what the tool returns (properties, services, events, ThingShapes), which is sufficient for a read-only metadata retrieval operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with no unnecessary words. The first sentence states the core function, and the second provides usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is complete: it explains what it does, what it returns, and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with clear description. The tool description adds no additional meaning beyond the schema's 'The Thing name' and the phrase 'by name'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get metadata for a specific Thing by name.' It lists the returned data (properties, services, events, ThingShapes) and distinguishes from siblings like get_thing_template, list_things, and read_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use: 'Used to discover the surface area of a Thing before reading or writing it.' This provides context, though it does not explicitly mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thing_templateA
Get the full definition of a ThingTemplate by name, including property + service + event signatures, parent template, and implemented ThingShapes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The ThingTemplate name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral aspects. It describes what is returned but does not disclose side effects, error behavior (e.g., if name not found), permissions required, or idempotency. A read operation should clarify these aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the tool's purpose and scope. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lacks details on return format structure and error handling. For a get tool, it should clarify if an error occurs when the template is not found or if it returns null. The description covers the essentials but is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage; the 'name' parameter is already described in the schema. The description adds no additional meaning beyond associating the parameter with the resource. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a well-defined resource 'ThingTemplate', and explicitly lists what is included in the definition (property, service, event signatures, parent template, implemented ThingShapes). It clearly distinguishes from sibling 'list_thing_templates' which lists all templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need a full definition of a specific ThingTemplate by name. However, it does not explicitly state when not to use this tool or provide direct comparisons with alternatives like 'list_thing_templates'. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoke_serviceA
Invoke a named Service on a Thing. Gated by THINGWORX_ALLOW_INVOKE=true (separate from write) because services execute named actions that can include PLC commands, scripted workflows, and downstream system calls. The MCP refuses to invoke unless the operator has explicitly authorized it.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | No | Optional parameters passed to the service | |
| thing_name | Yes | The Thing on which to invoke the service | |
| service_name | Yes | The Service name to invoke |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses critical behavioral traits: the need for explicit authorization (THINGWORX_ALLOW_INVOKE=true) and that services can execute potentially destructive actions (PLC commands, scripted workflows, downstream calls). It does not cover all aspects like return format or error handling, but adds significant value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every word contributes essential information. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (invocation of arbitrary services with potential side effects) and lack of output schema, the description covers safety and authorization but omits details on return value, error states, or typical success/failure behavior. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already states for each parameter (thing_name, service_name, parameters). It merely restates that parameters are optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (invoke) and resource (a named Service on a Thing), distinguishing it from sibling tools like read_property or write_property, which handle data access rather than action execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the tool is gated by an environment variable and is separate from write operations, implying it should be used when authorized for executing actions. However, it does not explicitly contrast with sibling tools or specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_thingsA
List all Things registered in the ThingWorx model. Returns Thing names, descriptions, and parent ThingTemplate. The standard read path for an agent that needs to discover the industrial asset inventory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the basic behavior (lists all Things) and output fields, but with no annotations, the full burden is on the description. It omits potential side effects (e.g., performance for large inventories), authentication needs, or rate limits. Adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are direct and informative. Every word adds value, and key information is front-loaded. No unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description provides enough context for a simple listing tool. It specifies the return fields and use case. Could mention potential pagination or size limits, but overall satisfactory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema_description_coverage is 100%. The description correctly implies no parameters are needed but does not add extra semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all Things'), the resource ('registered in the ThingWorx model'), and the exact fields returned ('Thing names, descriptions, and parent ThingTemplate'). It also distinguishes from siblings like 'search_things' and 'list_thing_templates' by calling it the 'standard read path' for discovering the inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('to discover the industrial asset inventory') and implies it is the primary listing tool. It does not explicitly state when to avoid it or mention alternatives, but the sibling names suggest other tools for specific tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_thing_templatesA
List all ThingTemplates available in the ThingWorx model. ThingTemplates are the type definitions Things instantiate from. Used by agents to understand the schema available before creating or inspecting Things.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies a read-only list operation, but does not disclose potential side effects, pagination, or access requirements. Adequate for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no wasted words. Every sentence adds value: purpose and usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description fully covers the tool's purpose and usage context. No gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema; baseline is 4. Description does not need to add param info as there are none. It correctly implies no filtering options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all ThingTemplates' and explains what ThingTemplates are. It distinguishes from sibling tools like list_things (things vs templates) and get_thing_template (list vs single) through context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'before creating or inspecting Things'. Lacks explicit when-not-to-use or alternatives, but context sufficiently guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_propertyA
Read the current value of a single Property on a Thing. Returns the property value plus its data type. The standard read path for an agent that needs the live state of an industrial asset.
| Name | Required | Description | Default |
|---|---|---|---|
| thing_name | Yes | The Thing whose property to read | |
| property_name | Yes | The Property name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral aspects. It states it is a read operation returning value and type, which implies safety, but does not disclose potential errors, permissions, or whether data is cached. Adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that are front-loaded with the action and resource. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description is fairly complete. It explains what is returned and the typical use case. Missing error handling details but sufficient for an agent to understand basic behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds context about the return value (data type), which is not in the schema, thus providing additional value beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a single property on a thing and returns its value and data type. It distinguishes from siblings like get_thing (reads whole thing) and write_property (writes) by specifying exactly what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use this tool ('standard read path for live state of industrial asset'), but does not explicitly exclude alternatives or mention when not to use it compared to siblings like get_thing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_thingsA
Search the ThingWorx model by free-text expression matched against Thing names + descriptions. Returns up to max_items results. Used when the agent does not know the exact Thing name (e.g. 'find all conveyor things in Line 4').
| Name | Required | Description | Default |
|---|---|---|---|
| max_items | No | Max results (default 50) | |
| search_expression | Yes | Free-text search expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions results are limited by max_items, suggesting it returns a subset. However, it does not explicitly state it is a read-only operation or describe any side effects. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and scope. The example is concise and helpful. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers what the tool does, what it returns (up to max_items results), and when to use it. It lacks details on the return format, but that is acceptable for a simple search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, so the description adds value by explaining the search is against 'Thing names + descriptions', which is not in the schema. It also reinforces that max_items caps results. This provides useful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches by free-text expression against Thing names and descriptions. It distinguishes from siblings like get_thing (exact name) and list_things (exhaustive), providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: when the agent does not know the exact Thing name. Includes an example ('find all conveyor things in Line 4') that clarifies the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_propertyA
Write a new value to a Property on a Thing. Gated by THINGWORX_ALLOW_WRITE=true because property writes can change the state of real industrial equipment (setpoints, modes, configuration). The MCP refuses to write unless the operator has explicitly authorized it.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The new property value. Type must match the property definition. | |
| thing_name | Yes | The Thing whose property to write | |
| property_name | Yes | The Property name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that writes can change real equipment state, requires the THINGWORX_ALLOW_WRITE environment variable, and refuses without authorization. This adds important behavioral context beyond a simple write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each contributing essential information: action, gating reason, and authorization requirement. It is front-loaded with the primary purpose and efficiently conveys key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and 3 parameters, the description covers the main purpose and behavioral constraints (gating, safety). It lacks details on return values or error handling, but the safety context is strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 3 parameters have descriptions in the schema). The description adds no additional parameter-level information, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Write a new value to a Property on a Thing.' It uses specific verbs and resources, and distinguishes from sibling tools like 'read_property' by being a write operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for changing property values on industrial equipment, but does not explicitly state when to use vs. alternatives or when not to use. It mentions the gating requirement but lacks explicit exclusions or comparisons.
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. Dates show when Glama detected each change.
8 tool updates
v0.1.0- First observed
get_thing - First observed
get_thing_template - First observed
invoke_service - First observed
list_thing_templates - First observed
list_things - First observed
read_property - First observed
search_things - First observed
write_property
TDQS
Each tool targets a distinct resource and action: property, service, thing, template, search. No overlap between read_property/write_property, list_things/search_things, or get_thing/get_thing_template.
All tools follow a clear verb_noun pattern in snake_case (e.g., list_things, read_property, invoke_service). No mixed conventions or vague verbs.
8 tools is well-scoped for an industrial MCP server covering asset discovery, state reading, property writing, and service invocation. Each tool has clear purpose.
Core read/write and discovery are covered, but missing create/delete for Things and ThingTemplates. Invoke/service is present but limited. Gaps in lifecycle management.
Maintenance
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
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
471Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceConnect your AI workflows to the ThingsBoard IoT Platform through this MCP server. Enables LLMs to query device telemetry, manage IoT entities (devices, assets, customers), and analyze sensor data - all through natural language. Perfect for building AI-powered IoT monitoring, predictive maintenance,98Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.62MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for integrating manufacturing systems (MES/ERP/quality/maintenance) with LLM agents, enabling event ingestion, incident triage, approval workflows, and RAG-based knowledge retrieval.MIT
- FlicenseNot gradedqualityCmaintenanceEnterprise MCP server providing a suite of tools including file, database, GitHub, Slack, calendar, email, vector search, and Python execution, with safe defaults and OpenAI integration for automatic tool selection.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NoBanks/thingworx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server