AEM MCP Server
Runtime environment used for executing the AEM MCP server
Package manager used for dependency management and running the server
Programming language used for server implementation
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., "@AEM MCP Servercheck the status of my AEM instance"
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.
AEM MCP Server
A Model Context Protocol (MCP) server for Adobe Experience Manager (AEM) local instance management. This server provides tools to interact with AEM instances, manage packages, check status, and perform common development tasks.
Features
The AEM MCP server provides the following tools:
1. aem_status
Check the status of an AEM instance including version, bundle count, and overall health.
Parameters:
host(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)
2. aem_install_package
Install a package (.zip file) in AEM.
Parameters:
packagePath(required): Path to the package file (.zip)host(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)force(optional): Force installation (default: false)
3. aem_list_packages
List all installed packages in AEM.
Parameters:
host(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)
4. aem_create_page
Create a new page in AEM.
Parameters:
parentPath(required): Parent path where to create the pagepageName(required): Name of the new pagepageTitle(required): Title of the new pagetemplate(required): Template path for the pagehost(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)
5. aem_replicate_content
Replicate content to publish instance (activate/deactivate).
Parameters:
path(required): Content path to replicateaction(optional): Replication action - 'activate' or 'deactivate' (default: activate)host(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)
6. aem_query_content
Query content using JCR-SQL2 or XPath.
Parameters:
query(required): Query string (JCR-SQL2 or XPath)type(optional): Query type - 'JCR-SQL2' or 'xpath' (default: JCR-SQL2)limit(optional): Maximum number of results (default: 20)host(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)
7. aem_bundle_status
Check OSGi bundle status.
Parameters:
bundleId(optional): Specific bundle ID or symbolic namehost(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)
8. aem_clear_cache
Clear various AEM caches.
Parameters:
cacheType(optional): Type of cache to clear - 'dispatcher', 'clientlibs', or 'all' (default: all)host(optional): AEM host (default: localhost)port(optional): AEM port (default: 4502)username(optional): AEM username (default: admin)password(optional): AEM password (default: admin)
Related MCP server: Expo MCP Server
Installation
Clone or download this repository
Install dependencies:
npm installBuild the project:
npm run build
Usage
Running the Server
npm startDevelopment Mode
npm run devConfiguration
The server uses default AEM credentials (admin/admin) and connects to localhost:4502 by default. You can override these settings by providing different parameters when calling the tools.
Example Usage
Once the MCP server is configured and running, you can use the tools through your MCP client:
Check AEM status:
aem_statusInstall a package:
aem_install_packagewithpackagePath: "/path/to/package.zip"Create a page:
aem_create_pagewith required parametersQuery content:
aem_query_contentwithquery: "SELECT * FROM [cq:Page]"
Requirements
Node.js 18+
TypeScript
Running AEM instance (local or remote)
Appropriate AEM credentials
License
MIT License
Available Tools
8 toolsaem_bundle_statusC
Check OSGi bundle status
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | No | Specific bundle ID or symbolic name (optional) | |
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Check' which implies a read-only operation, but doesn't disclose behavioral traits like authentication needs (implied by parameters but not described), rate limits, error handling, or what specific status information is returned. This is inadequate for a tool with connection parameters.
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, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
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 tool's complexity (involving AEM connectivity and OSGi bundle checks), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'status' entails, return formats, or error scenarios, leaving significant gaps for an AI agent to use it effectively.
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 schema fully documents all 5 parameters. The description adds no additional meaning beyond the schema, such as explaining the bundleId's optional nature or the implications of default credentials. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Check') and resource ('OSGi bundle status'), providing a specific purpose. However, it doesn't differentiate from sibling tools like 'aem_status' which might also provide status information, so it doesn't reach the highest score.
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 no guidance on when to use this tool versus alternatives like 'aem_status' or other AEM monitoring tools. There's no mention of prerequisites, timing, or comparative context with siblings, leaving usage decisions ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aem_clear_cacheC
Clear various AEM caches
| Name | Required | Description | Default |
|---|---|---|---|
| cacheType | No | Type of cache to clear | all |
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention authentication needs (implied by username/password params), potential destructive effects, rate limits, or response format, leaving critical operational context unspecified.
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, efficient sentence with no wasted words, making it front-loaded and easy to parse. However, it could be more structured by explicitly listing cache types or adding brief 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 tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't cover authentication, side effects, or return values, failing to compensate for the lack of structured data, which is inadequate given the tool's complexity.
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 schema fully documents all 5 parameters. The description adds no meaning beyond the schema, as it doesn't explain parameter interactions or provide additional context, meeting the baseline for high schema coverage.
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 'Clear various AEM caches' states the action (clear) and resource (AEM caches), but it's vague about scope and doesn't differentiate from siblings like aem_replicate_content or aem_status. It lacks specificity about what 'various' entails compared to the cacheType parameter options.
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or sibling tools, leaving the agent to infer usage from context alone without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aem_create_pageC
Create a new page in AEM
| Name | Required | Description | Default |
|---|---|---|---|
| parentPath | Yes | Parent path where to create the page | |
| pageName | Yes | Name of the new page | |
| pageTitle | Yes | Title of the new page | |
| template | Yes | Template path for the page | |
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
TDQS
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. While 'Create' implies a write/mutation operation, it doesn't specify permissions required, whether the operation is idempotent, what happens on conflicts (e.g., duplicate page names), or error conditions. For a mutation tool with zero annotation coverage, this leaves significant 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and efficient. Every word earns its place without redundancy or unnecessary elaboration.
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 8 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address what the tool returns (success/failure indicators, created page details), error handling, authentication implications (despite auth parameters in schema), or how it fits within the broader AEM content lifecycle alongside siblings like replication or package installation.
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%, with all 8 parameters well-documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema (e.g., no examples, format clarifications, or relationship explanations). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance but also doesn't detract from parameter understanding.
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 ('Create') and resource ('new page in AEM'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'aem_replicate_content' or 'aem_install_package' that might also involve content creation or management, leaving some ambiguity about its specific role within the toolset.
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 no guidance on when to use this tool versus alternatives. With siblings like 'aem_query_content' for reading and 'aem_replicate_content' for publishing, there's no indication that this is specifically for initial page creation versus other content operations. No prerequisites, exclusions, or contextual usage hints are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aem_install_packageC
Install a package in AEM
| Name | Required | Description | Default |
|---|---|---|---|
| packagePath | Yes | Path to the package file (.zip) | |
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
| force | No | Force installation (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Install' which implies a write/mutation operation, but doesn't cover critical aspects like required permissions (beyond default credentials in schema), potential system impacts (e.g., downtime, cache invalidation), error handling, or what 'force' installation entails. This leaves significant gaps for a tool that modifies AEM state.
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 extremely concise at just 4 words ('Install a package in AEM'), making it front-loaded and efficient. Every word contributes directly to the core purpose without any wasted language, though this brevity comes at the cost of completeness in other dimensions.
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 tool with 6 parameters, no annotations, and no output schema that performs a potentially destructive installation operation in AEM, the description is inadequate. It lacks information about what installation entails, success/failure indicators, system requirements, or relationships to sibling tools. The high parameter count and mutation nature demand more comprehensive documentation than provided.
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%, providing clear documentation for all 6 parameters including defaults. The description adds no additional parameter semantics beyond what's in the schema, such as explaining package file format constraints or the implications of the 'force' option. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
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 ('Install') and target resource ('a package in AEM'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'aem_list_packages' or 'aem_create_page', which would require more specific language about what installation entails versus listing or creating.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing package file), exclusions (e.g., not for updating packages), or refer to sibling tools like 'aem_list_packages' for checking installed packages first, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aem_list_packagesB
List installed packages in AEM
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
TDQS
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 it's a list operation, implying read-only behavior, but doesn't mention any side effects, authentication requirements beyond what's in the schema, rate limits, or output format. For a tool with 4 parameters and no annotations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized and front-loaded, making it easy to understand at a glance.
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 tool's moderate complexity (4 parameters, no output schema, no annotations), the description is minimal but covers the basic purpose. However, it lacks details on behavioral traits, usage context, and output expectations, making it incomplete for fully informed tool selection. It meets the minimum viable standard but has clear gaps.
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, clearly documenting all 4 parameters with defaults and purposes. The description doesn't add any additional meaning beyond what the schema provides, such as explaining how parameters interact or providing usage examples. With 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('installed packages in AEM'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'aem_query_content' or 'aem_status' that might also involve listing or checking AEM components, so it doesn't reach the highest score.
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 no guidance on when to use this tool versus alternatives. There are sibling tools like 'aem_install_package' or 'aem_query_content' that might be relevant for related tasks, but the description doesn't mention 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.
aem_query_contentC
Query content using JCR-SQL2 or XPath
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Query string (JCR-SQL2 or XPath) | |
| type | No | Query type | JCR-SQL2 |
| limit | No | Maximum number of results (default: 20) | |
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions querying content but doesn't specify whether this is a read-only operation, potential side effects, authentication requirements beyond parameters, rate limits, or error handling. For a tool with 7 parameters including credentials, this lack of context is a significant gap.
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, efficient sentence with zero waste. It's front-loaded with the core purpose and specifies the query languages without unnecessary details, making it easy to parse quickly.
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 (7 parameters including authentication, no output schema, and no annotations), the description is incomplete. It doesn't explain return values, error conditions, or behavioral traits like safety and side effects, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional parameter semantics beyond implying query execution, which is already covered by the schema's descriptions for 'query' and 'type'. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('Query content') and specifies the query languages supported ('using JCR-SQL2 or XPath'), which distinguishes it from siblings like aem_create_page or aem_install_package. However, it doesn't explicitly differentiate from aem_list_packages or aem_replicate_content in terms of content querying vs. other operations.
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing AEM access), specific use cases, or comparisons to siblings like aem_list_packages for package queries. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aem_replicate_contentC
Replicate content to publish instance
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Content path to replicate | |
| action | No | Replication action (activate/deactivate) | activate |
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose if this is a destructive operation, what permissions are needed, rate limits, or what happens on the publish instance, which is critical for a replication 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?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for conciseness.
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 of a replication tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits, error handling, or return values, which are essential for safe and effective use in an AEM context.
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 schema fully documents all 6 parameters. The description adds no additional meaning beyond the schema, such as explaining the 'activate/deactivate' actions in context or the significance of the path parameter, meeting the baseline for high coverage.
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 ('replicate') and resource ('content to publish instance'), making the purpose understandable. However, it doesn't differentiate from sibling tools like aem_install_package or aem_create_page, which also involve content operations, so it's not fully distinctive.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or compare to siblings like aem_clear_cache or aem_query_content, leaving the agent to guess based on context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aem_statusC
Check the status of AEM instance
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | AEM host (default: localhost) | localhost |
| port | No | AEM port (default: 4502) | |
| username | No | AEM username (default: admin) | admin |
| password | No | AEM password (default: admin) | admin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'checks' status, implying a read-only operation, but doesn't specify what 'status' includes (e.g., health, uptime, metrics), whether it requires authentication (though parameters suggest it might), or any side effects like network calls. This leaves significant gaps for a tool with authentication parameters.
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, clear sentence with no wasted words. It's front-loaded with the core purpose and appropriately sized for a simple status-checking tool, making it easy for an agent to parse quickly.
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 annotations, no output schema, and authentication parameters, the description is incomplete. It doesn't explain what 'status' entails (e.g., returns health indicators, error details), how authentication affects the check, or potential failure modes. For a tool that likely interacts with a remote system, more context is needed.
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%, with all parameters well-documented in the schema itself (host, port, username, password with defaults). The description adds no additional parameter semantics beyond implying these might be needed for checking status, so it meets the baseline for high schema coverage without adding value.
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 ('Check') and resource ('status of AEM instance'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'aem_bundle_status' which might check a more specific aspect of AEM status, so it doesn't reach the highest score.
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 no guidance on when to use this tool versus alternatives like 'aem_bundle_status' or other AEM monitoring tools. It lacks any context about prerequisites, timing, or exclusions, 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.
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
- First observed
aem_bundle_status - First observed
aem_clear_cache - First observed
aem_create_page - First observed
aem_install_package - First observed
aem_list_packages - First observed
aem_query_content - First observed
aem_replicate_content - First observed
aem_status
TDQS
Each tool has a clearly distinct purpose targeting specific AEM operations: bundle status, cache clearing, page creation, package installation, package listing, content querying, content replication, and instance status. There is no overlap in functionality, making tool selection straightforward for an agent.
All tools follow a consistent 'aem_verb_noun' pattern with snake_case throughout, such as aem_clear_cache and aem_create_page. This predictable naming scheme enhances readability and reduces cognitive load for agents.
With 8 tools, the server is well-scoped for AEM administration tasks, covering key operations like instance management, content handling, and package control. Each tool earns its place without being overwhelming or insufficient for the domain.
The toolset provides strong coverage for core AEM workflows, including instance status, content creation/querying/replication, and package management. Minor gaps exist, such as the lack of tools for updating or deleting pages/packages, but agents can likely work around these with existing tools.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
A Model Context Protocol server for Wix AI tools
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.122MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that provides development and debugging tools for Expo-based React Native applications, enabling developers to manage Expo servers, capture logs, and manipulate project files.51-
- AlicenseCqualityFmaintenanceA Model Context Protocol server for Adobe Experience Manager that provides REST/JSON-RPC APIs for content, component, and asset management with AI, chatbot, and automation integrations.4814AGPL 3.0
- AlicenseAqualityAmaintenanceA Model Context Protocol server that provides tooling support for Ember.js development, allowing developers to execute CLI commands, run codemods, access documentation, and discover community resources.742027MIT
Appeared in Searches
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/pradeep-moolemane/aem-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server