npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@wemake.cx/analogical-reasoning

v0.4.6

Published

MCP server for structured analogical reasoning and domain mapping

Readme

Analogical Reasoning MCP Server

A structured framework for constructing, mapping, and evaluating analogies to enhance systematic analogical thinking and problem-solving.

Core Concepts

Domain Elements

Domain elements are the building blocks of analogical reasoning. Each element has:

  • A unique identifier
  • A name and type (entity, attribute, relation, process)
  • A descriptive explanation

Example:

{
  "id": "water_flow",
  "name": "Water Flow",
  "type": "process",
  "description": "Movement of water through pipes under pressure"
}

Analogical Mappings

Mappings define correspondences between source and target domain elements. They include:

  • Source and target element references
  • Mapping strength (0.0-1.0)
  • Justification for the mapping
  • Known limitations

Example:

{
  "sourceElement": "water_flow",
  "targetElement": "electric_current",
  "mappingStrength": 0.9,
  "justification": "Both involve flow of substance through conduits",
  "limitations": ["Water is visible, electricity is not"]
}

Inferences

Inferences are conclusions drawn from analogical mappings. They contain:

  • Statement of the inference
  • Confidence level (0.0-1.0)
  • Supporting mappings that justify the inference

Example:

{
  "statement": "Electrical resistance is like pipe friction",
  "confidence": 0.8,
  "basedOnMappings": ["water_flow_to_current", "pipe_to_wire"]
}

API

Tools

  • analogicalReasoning
    • Construct and evaluate analogical mappings between domains
    • Input: Comprehensive analogical reasoning data structure
      • sourceDomain (object): Source domain with name and elements
      • targetDomain (object): Target domain with name and elements
      • mappings (array): Analogical mappings between domains
      • analogyId (string): Unique identifier for the analogy
      • purpose (enum): "explanation" | "prediction" | "problem-solving" | "creative-generation"
      • confidence (number): Overall confidence in the analogy (0.0-1.0)
      • iteration (number): Current iteration of the analogical reasoning process
      • strengths (string[]): Areas where the analogy is particularly strong
      • limitations (string[]): Known limitations of the analogy
      • inferences (array): Conclusions drawn from the mappings
      • nextOperationNeeded (boolean): Whether further operations are required
      • suggestedOperations (array): Recommended next steps
    • Returns structured analogical analysis with mappings and evaluations
    • Supports iterative refinement of analogical reasoning

Setup

Cursor

Add to Cursor

Or manually add the following to your ~/.cursor/mcp.json file:

{
  "mcpServers": {
    "Analogical Reasoning": {
      "command": "bunx",
      "args": ["@wemake.cx/analogical-reasoning@latest"]
    }
  }
}

Raycast

Add to Raycast

Or manually via UI by using Manage MCP Servers, and press CMD + N and paste the following:

{
  "mcpServers": {
    "Analogical Reasoning": {
      "command": "bunx",
      "args": ["@wemake.cx/analogical-reasoning@latest"]
    }
  }
}

System Prompt

The prompt for utilizing analogical reasoning should encourage systematic mapping and evaluation:

Follow these steps for analogical reasoning:

1. Domain Definition:
   - Clearly define both source and target domains
   - Identify key entities, attributes, relations, and processes in each domain
   - Ensure domains are well-structured before proceeding

2. Systematic Mapping:
   - Create explicit mappings between corresponding elements
   - Assign mapping strength based on structural similarity
   - Provide clear justification for each mapping
   - Identify limitations where mappings break down

3. Inference Generation:
   - Draw conclusions based on established mappings
   - Assign confidence levels to inferences
   - Reference supporting mappings for each inference
   - Consider alternative interpretations

4. Evaluation and Refinement:
   - Assess overall analogy quality and limitations
   - Identify areas for improvement or alternative source domains
   - Iterate on mappings based on new insights
   - Document lessons learned for future analogical reasoning