Skip to content

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"}'
2025-11-09 14:28:29 SEVERE dev.enola.cli.common.LoggingMixin executionStrategy Hi! ๐Ÿ‘‹ I'm https://Enola.dev 852c1ab-dirty. ๐Ÿ‘ฝ Resistance ๐Ÿ‘พ is futile. We are ONE. What's your goal, today?

TextContent[annotations=null, text=Echo: hi, meta=null]

List MCP Tools

$ ./enola mcp list-tools
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
- 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
- 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
- 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
- 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
- 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
- name: git_reset
  description: Unstages all staged changes
  inputSchema:
    type: object
    properties:
      repo_path:
        title: Repo Path
        type: string
    required:
    - repo_path
- 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
- 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
- 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
- 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
- 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
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
  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
          additionalProperties: false
    required:
    - entities
    additionalProperties: false
- name: 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
          additionalProperties: false
    required:
    - relations
    additionalProperties: false
- name: 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
          additionalProperties: false
    required:
    - observations
    additionalProperties: false
- name: 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
    additionalProperties: false
- name: 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
          additionalProperties: false
    required:
    - deletions
    additionalProperties: false
- name: 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
          additionalProperties: false
        description: An array of relations to delete
    required:
    - relations
    additionalProperties: false
- name: read_graph
  description: Read the entire knowledge graph
  inputSchema:
    type: object
    properties: {}
    additionalProperties: false
- name: 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
    additionalProperties: false
- name: 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
    additionalProperties: false
modelcontextprotocol/everything:
- name: echo
  description: Echoes back the input
  inputSchema:
    type: object
    properties:
      message:
        type: string
        description: Message to echo
    required:
    - message
    additionalProperties: false
- name: add
  description: Adds two numbers
  inputSchema:
    type: object
    properties:
      a:
        type: number
        description: First number
      b:
        type: number
        description: Second number
    required:
    - a
    - b
    additionalProperties: false
- name: longRunningOperation
  description: Demonstrates a long running operation with progress updates
  inputSchema:
    type: object
    properties:
      duration:
        type: number
        default: 10
        description: Duration of the operation in seconds
      steps:
        type: number
        default: 5
        description: Number of steps in the operation
    additionalProperties: false
- name: printEnv
  description: "Prints all environment variables, helpful for debugging MCP server\
    \ configuration"
  inputSchema:
    type: object
    properties: {}
    additionalProperties: false
- name: sampleLLM
  description: Samples from an LLM using MCP's sampling feature
  inputSchema:
    type: object
    properties:
      prompt:
        type: string
        description: The prompt to send to the LLM
      maxTokens:
        type: number
        default: 100
        description: Maximum number of tokens to generate
    required:
    - prompt
    additionalProperties: false
- name: getTinyImage
  description: Returns the MCP_TINY_IMAGE
  inputSchema:
    type: object
    properties: {}
    additionalProperties: false
- name: annotatedMessage
  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:
        type: boolean
        default: false
        description: Whether to include an example image
    required:
    - messageType
    additionalProperties: false
- name: getResourceReference
  description: Returns a resource reference that can be used by MCP clients
  inputSchema:
    type: object
    properties:
      resourceId:
        type: number
        minimum: 1
        maximum: 100
        description: ID of the resource to reference (1-100)
    required:
    - resourceId
    additionalProperties: false
- name: getResourceLinks
  description: Returns multiple resource links that reference different types of resources
  inputSchema:
    type: object
    properties:
      count:
        type: number
        minimum: 1
        maximum: 10
        default: 3
        description: Number of resource links to return (1-10)
    additionalProperties: false
- name: structuredContent
  description: Returns structured content along with an output schema for client data
    validation
  inputSchema:
    type: object
    properties:
      location:
        type: string
        minLength: 1
        description: City name or zip code
    required:
    - location
    additionalProperties: false
  outputSchema:
    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
    $schema: http://json-schema.org/draft-07/schema#

Screencast

Demo