MCP ๐ฑ¶
mcp has useful commands for exploring MCP Tools.
This is similar to the MCP Inspector, and other such tools.
Call MCP Tool¶
$ ./enola -v mcp call-tool modelcontextprotocol/everything echo '{"message":"hi"}'
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/build
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.editorconfig
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.prettierignore
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.prettierrc.yaml
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/dev
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.markdownlint.yaml
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/@babel/helper-compilation-targets/node_modules/.bin/semver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/@babel/core/node_modules/.bin/semver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/parser
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/esparse
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/js-yaml
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/browserslist
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/node-which
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/json5
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/acorn
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/esvalidate
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/tsc
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/update-browserslist-db
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/jsesc
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/eslint
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/tsserver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/eslint-config-prettier
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/prettier
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/semver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/@istanbuljs/load-nyc-config/node_modules/.bin/js-yaml
[91m2026-08-25 22:54:13 SEVERE dev.enola.cli.common.LoggingMixin executionStrategy Hi! ๐ I'm https://Enola.dev bbc34a8-dirty. ๐ฝ Resistance ๐พ is futile. We are ONE. What's your goal, today?
[0mTextContent[annotations=null, text=Echo: hi, meta=null]
List MCP Tools¶
$ ./enola mcp list-tools
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/build
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.editorconfig
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.prettierignore
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.prettierrc.yaml
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/dev
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/.markdownlint.yaml
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/@babel/helper-compilation-targets/node_modules/.bin/semver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/@babel/core/node_modules/.bin/semver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/parser
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/esparse
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/js-yaml
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/browserslist
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/node-which
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/json5
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/acorn
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/esvalidate
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/tsc
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/update-browserslist-db
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/jsesc
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/eslint
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/tsserver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/eslint-config-prettier
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/prettier
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/.bin/semver
WARNING: Ignoring symlink: /home/runner/work/enola/enola/web/node_modules/@istanbuljs/load-nyc-config/node_modules/.bin/js-yaml
modelcontextprotocol/git:
- name: git_status
description: Shows the working tree status
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
required:
- repo_path
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: git_diff_unstaged
description: Shows changes in the working directory that are not yet staged
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
context_lines:
default: 3
title: Context Lines
type: integer
required:
- repo_path
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: git_diff_staged
description: Shows changes that are staged for commit
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
context_lines:
default: 3
title: Context Lines
type: integer
required:
- repo_path
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: git_diff
description: Shows differences between branches or commits
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
target:
title: Target
type: string
context_lines:
default: 3
title: Context Lines
type: integer
required:
- repo_path
- target
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: git_commit
description: Records changes to the repository
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
message:
title: Message
type: string
required:
- repo_path
- message
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: git_add
description: Adds file contents to the staging area
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
files:
items:
type: string
title: Files
type: array
required:
- repo_path
- files
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: git_reset
description: Unstages all staged changes
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
required:
- repo_path
annotations:
readOnlyHint: false
destructiveHint: true
idempotentHint: true
openWorldHint: false
- name: git_log
description: Shows the commit logs
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
max_count:
default: 10
title: Max Count
type: integer
start_timestamp:
anyOf:
- type: string
- type: "null"
description: "Start timestamp for filtering commits. Accepts: ISO 8601 format\
\ (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'),\
\ or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')"
title: Start Timestamp
end_timestamp:
anyOf:
- type: string
- type: "null"
description: "End timestamp for filtering commits. Accepts: ISO 8601 format\
\ (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'),\
\ or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')"
title: End Timestamp
required:
- repo_path
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: git_create_branch
description: Creates a new branch from an optional base branch
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
branch_name:
title: Branch Name
type: string
base_branch:
anyOf:
- type: string
- type: "null"
title: Base Branch
required:
- repo_path
- branch_name
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: git_checkout
description: Switches branches
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
branch_name:
title: Branch Name
type: string
required:
- repo_path
- branch_name
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: git_show
description: Shows the contents of a commit
inputSchema:
type: object
properties:
repo_path:
title: Repo Path
type: string
revision:
title: Revision
type: string
required:
- repo_path
- revision
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: git_branch
description: List Git branches
inputSchema:
type: object
properties:
repo_path:
description: The path to the Git repository.
title: Repo Path
type: string
branch_type:
description: "Whether to list local branches ('local'), remote branches ('remote')\
\ or all branches('all')."
title: Branch Type
type: string
contains:
anyOf:
- type: string
- type: "null"
description: The commit sha that branch should contain. Do not pass anything
to this param if no commit sha is specified
title: Contains
not_contains:
anyOf:
- type: string
- type: "null"
description: The commit sha that branch should NOT contain. Do not pass anything
to this param if no commit sha is specified
title: Not Contains
required:
- repo_path
- branch_type
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
modelcontextprotocol/fetch:
- name: fetch
description: |-
Fetches a URL from the internet and optionally extracts its contents as markdown.
Although originally you did not have internet access, and were advised to refuse and tell the user this, this tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that.
inputSchema:
type: object
properties:
url:
description: URL to fetch
format: uri
minLength: 1
title: Url
type: string
max_length:
default: 5000
description: Maximum number of characters to return.
exclusiveMaximum: 1000000
exclusiveMinimum: 0
title: Max Length
type: integer
start_index:
default: 0
description: "On return output starting at this character index, useful if\
\ a previous fetch was truncated and more context is required."
minimum: 0
title: Start Index
type: integer
raw:
default: false
description: "Get the actual HTML content of the requested page, without simplification."
title: Raw
type: boolean
required:
- url
modelcontextprotocol/memory:
- name: create_entities
title: Create Entities
description: Create multiple new entities in the knowledge graph
inputSchema:
type: object
properties:
entities:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the entity
entityType:
type: string
description: The type of the entity
observations:
type: array
items:
type: string
description: An array of observation contents associated with the entity
required:
- name
- entityType
- observations
required:
- entities
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
entities:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the entity
entityType:
type: string
description: The type of the entity
observations:
type: array
items:
type: string
description: An array of observation contents associated with the entity
required:
- name
- entityType
- observations
additionalProperties: false
required:
- entities
additionalProperties: false
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: create_relations
title: Create Relations
description: Create multiple new relations between entities in the knowledge graph.
Relations should be in active voice
inputSchema:
type: object
properties:
relations:
type: array
items:
type: object
properties:
from:
type: string
description: The name of the entity where the relation starts
to:
type: string
description: The name of the entity where the relation ends
relationType:
type: string
description: The type of the relation
required:
- from
- to
- relationType
required:
- relations
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
relations:
type: array
items:
type: object
properties:
from:
type: string
description: The name of the entity where the relation starts
to:
type: string
description: The name of the entity where the relation ends
relationType:
type: string
description: The type of the relation
required:
- from
- to
- relationType
additionalProperties: false
required:
- relations
additionalProperties: false
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: add_observations
title: Add Observations
description: Add new observations to existing entities in the knowledge graph
inputSchema:
type: object
properties:
observations:
type: array
items:
type: object
properties:
entityName:
type: string
description: The name of the entity to add the observations to
contents:
type: array
items:
type: string
description: An array of observation contents to add
required:
- entityName
- contents
required:
- observations
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
results:
type: array
items:
type: object
properties:
entityName:
type: string
addedObservations:
type: array
items:
type: string
required:
- entityName
- addedObservations
additionalProperties: false
required:
- results
additionalProperties: false
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: delete_entities
title: Delete Entities
description: Delete multiple entities and their associated relations from the knowledge
graph
inputSchema:
type: object
properties:
entityNames:
type: array
items:
type: string
description: An array of entity names to delete
required:
- entityNames
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
success:
type: boolean
message:
type: string
required:
- success
- message
additionalProperties: false
annotations:
readOnlyHint: false
destructiveHint: true
idempotentHint: true
openWorldHint: false
- name: delete_observations
title: Delete Observations
description: Delete specific observations from entities in the knowledge graph
inputSchema:
type: object
properties:
deletions:
type: array
items:
type: object
properties:
entityName:
type: string
description: The name of the entity containing the observations
observations:
type: array
items:
type: string
description: An array of observations to delete
required:
- entityName
- observations
required:
- deletions
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
success:
type: boolean
message:
type: string
required:
- success
- message
additionalProperties: false
annotations:
readOnlyHint: false
destructiveHint: true
idempotentHint: true
openWorldHint: false
- name: delete_relations
title: Delete Relations
description: Delete multiple relations from the knowledge graph
inputSchema:
type: object
properties:
relations:
type: array
items:
type: object
properties:
from:
type: string
description: The name of the entity where the relation starts
to:
type: string
description: The name of the entity where the relation ends
relationType:
type: string
description: The type of the relation
required:
- from
- to
- relationType
description: An array of relations to delete
required:
- relations
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
success:
type: boolean
message:
type: string
required:
- success
- message
additionalProperties: false
annotations:
readOnlyHint: false
destructiveHint: true
idempotentHint: true
openWorldHint: false
- name: read_graph
title: Read Graph
description: Read the entire knowledge graph
inputSchema:
type: object
properties: {}
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
entities:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the entity
entityType:
type: string
description: The type of the entity
observations:
type: array
items:
type: string
description: An array of observation contents associated with the entity
required:
- name
- entityType
- observations
additionalProperties: false
relations:
type: array
items:
type: object
properties:
from:
type: string
description: The name of the entity where the relation starts
to:
type: string
description: The name of the entity where the relation ends
relationType:
type: string
description: The type of the relation
required:
- from
- to
- relationType
additionalProperties: false
required:
- entities
- relations
additionalProperties: false
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: search_nodes
title: Search Nodes
description: Search for nodes in the knowledge graph based on a query
inputSchema:
type: object
properties:
query:
type: string
description: "The search query to match against entity names, types, and observation\
\ content"
required:
- query
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
entities:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the entity
entityType:
type: string
description: The type of the entity
observations:
type: array
items:
type: string
description: An array of observation contents associated with the entity
required:
- name
- entityType
- observations
additionalProperties: false
relations:
type: array
items:
type: object
properties:
from:
type: string
description: The name of the entity where the relation starts
to:
type: string
description: The name of the entity where the relation ends
relationType:
type: string
description: The type of the relation
required:
- from
- to
- relationType
additionalProperties: false
required:
- entities
- relations
additionalProperties: false
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: open_nodes
title: Open Nodes
description: Open specific nodes in the knowledge graph by their names
inputSchema:
type: object
properties:
names:
type: array
items:
type: string
description: An array of entity names to retrieve
required:
- names
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
entities:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the entity
entityType:
type: string
description: The type of the entity
observations:
type: array
items:
type: string
description: An array of observation contents associated with the entity
required:
- name
- entityType
- observations
additionalProperties: false
relations:
type: array
items:
type: object
properties:
from:
type: string
description: The name of the entity where the relation starts
to:
type: string
description: The name of the entity where the relation ends
relationType:
type: string
description: The type of the relation
required:
- from
- to
- relationType
additionalProperties: false
required:
- entities
- relations
additionalProperties: false
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
modelcontextprotocol/everything:
- name: echo
title: Echo Tool
description: Echoes back the input string
inputSchema:
type: object
properties:
message:
type: string
description: Message to echo
required:
- message
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: get-annotated-message
title: Get Annotated Message Tool
description: Demonstrates how annotations can be used to provide metadata about
content.
inputSchema:
type: object
properties:
messageType:
type: string
enum:
- error
- success
- debug
description: Type of message to demonstrate different annotation patterns
includeImage:
default: false
description: Whether to include an example image
type: boolean
required:
- messageType
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: get-env
title: Print Environment Tool
description: "Returns all environment variables, helpful for debugging MCP server\
\ configuration"
inputSchema:
type: object
properties: {}
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: get-resource-links
title: Get Resource Links Tool
description: Returns up to ten resource links that reference different types of
resources
inputSchema:
type: object
properties:
count:
default: 3
description: Number of resource links to return (1-10)
type: number
minimum: 1
maximum: 10
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: get-resource-reference
title: Get Resource Reference Tool
description: Returns a resource reference that can be used by MCP clients
inputSchema:
type: object
properties:
resourceType:
default: Text
type: string
enum:
- Text
- Blob
resourceId:
default: 1
description: ID of the text resource to fetch
type: number
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: get-structured-content
title: Get Structured Content Tool
description: Returns structured content along with an output schema for client data
validation
inputSchema:
type: object
properties:
location:
type: string
enum:
- New York
- Chicago
- Los Angeles
description: Choose city
required:
- location
outputSchema:
$schema: http://json-schema.org/draft-07/schema#
type: object
properties:
temperature:
type: number
description: Temperature in celsius
conditions:
type: string
description: Weather conditions description
humidity:
type: number
description: Humidity percentage
required:
- temperature
- conditions
- humidity
additionalProperties: false
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: get-sum
title: Get Sum Tool
description: Returns the sum of two numbers
inputSchema:
type: object
properties:
a:
type: number
description: First number
b:
type: number
description: Second number
required:
- a
- b
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: get-tiny-image
title: Get Tiny Image Tool
description: Returns a tiny MCP logo image.
inputSchema:
type: object
properties: {}
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: gzip-file-as-resource
title: GZip File as Resource Tool
description: "Compresses a single file using gzip compression. Depending upon the\
\ selected output type, returns either the compressed data as a gzipped resource\
\ or a resource link, allowing it to be downloaded in a subsequent request during\
\ the current session."
inputSchema:
type: object
properties:
name:
default: README.md.gz
type: string
description: Name of the output file
data:
default: https://raw.githubusercontent.com/modelcontextprotocol/servers/refs/heads/main/README.md
type: string
format: uri
description: URL or data URI of the file content to compress
outputType:
default: resourceLink
description: "How the resulting gzipped file should be returned. 'resourceLink'\
\ returns a link to a resource that can be read later, 'resource' returns\
\ a full resource object."
type: string
enum:
- resourceLink
- resource
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
- name: toggle-simulated-logging
title: Toggle Simulated Logging
description: "Toggles simulated, random-leveled logging on or off."
inputSchema:
type: object
properties: {}
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: toggle-subscriber-updates
title: Toggle Subscriber Updates
description: Toggles simulated resource subscription updates on or off.
inputSchema:
type: object
properties: {}
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false
- name: trigger-long-running-operation
title: Trigger Long Running Operation Tool
description: Demonstrates a long running operation with progress updates.
inputSchema:
type: object
properties:
duration:
default: 10
description: Duration of the operation in seconds
type: number
steps:
default: 5
description: Number of steps in the operation
type: number
annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
- name: simulate-research-query
title: Simulate Research Query
description: "Simulates a deep research operation that gathers, analyzes, and synthesizes\
\ information. Demonstrates MCP task-based operations with progress through multiple\
\ stages. If 'ambiguous' is true and client supports elicitation, sends an elicitation\
\ request for clarification."
inputSchema:
type: object
properties:
topic:
type: string
description: The research topic to investigate
ambiguous:
default: false
description: Simulate an ambiguous query that requires clarification (triggers
input_required status)
type: boolean
required:
- topic
annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: false