0.3.46 • Published 10 months ago

@nbiish/giizhendam-aabajichiganan-mcp v0.3.46

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

◈──◆──◇ GIIZHENDAM AABAJICHIGANAN MCP SERVER ◇──◆──◈

"Giizhendam Aabajichiganan" (Ojibwe: Decision-Making Tools) - An MCP server providing AI-assisted programming and decision-making tools.

ᐴ WAAWIINDAMAAGEWIN ᔔ OVERVIEW ◈──◆──◇──◆──◈

This project implements a Model Context Protocol (MCP) server that provides various AI-powered tools for developers and decision-makers. It serves as a bridge between different AI models and provides specialized tools for code assistance, financial analysis, and collaborative decision simulation.

The server includes interfaces to guide the use of aider CLI for AI pair programming and the Gemini API for specialized simulations, all within a secure TypeScript implementation.

ᐴ GASHKITOONAN ᔔ CAPABILITIES ◈──◆──◇──◆──◈

  • ◇ AI-assisted Programming Guidance ◇

    • Expert guidance on using aider CLI for code assistance
    • Automatic selection of optimal edit formats based on model type
    • Recommendations for both standard and redundant computation approaches
  • ◇ Financial Expert Simulation ◇

    • Simulates deliberation between 7 financial expert personas
    • Generates analysis from different financial perspectives
    • Includes perspectives from Graham, Ackman, Wood, Munger, Burry, Lynch, and Fisher
  • ◇ CEO & Board Meeting Simulation ◇

    • Simulates realistic board discussions on specified topics
    • Customizable roles and discussion parameters
    • Useful for planning and decision-making exercises
  • ◇ Security & Reliability ◇

    • Built-in security checks for file operations and URL validation
    • Comprehensive error handling and logging
    • Secure API key management

ᐴ OSHKI-AABAJICHIGANAN ᔔ RECENT CHANGES ◈──◆──◇──◆──◈

  • v0.3.34 - Fixed shebang line in the bundled output file to ensure proper execution via npx. This resolves issues with "Client closed" errors when running via MCP.

ᐴ NITAM-AABAJICHIGANAN ᔔ PREREQUISITES ◈──◆──◇──◆──◈

  • Node.js (v14 or higher) and npm/yarn
  • Aider CLI installed and accessible in PATH
  • API keys for required services
  • Git (for aider functionality)

ᐴ AABAJITOOWINAN ᔔ INSTALLATION ◈──◆──◇──◆──◈

Global Installation (Recommended)

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ AABAJITOOWINAN ᔔ [ IMPLEMENTATION COMMANDS ]                      │
╰──────────────────────────────────────────────────────────────────────╯

# First uninstall any existing versions
npm uninstall -g @nbiish/giizhendam-aabajichiganan-mcp
npm uninstall -g @nbiish/ai-tool-mcp

# Install from the current directory
npm install -g .

# Or install from npm registry (choose one)
npm install -g @nbiish/giizhendam-aabajichiganan-mcp
# Alternative package with identical functionality
npm install -g @nbiish/ai-tool-mcp

Troubleshooting Installation Issues

If you encounter issues with the executable script (e.g., "command not found" or shell syntax errors), try these steps:

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ NANAA'ITOOWIN ᔔ [ TROUBLESHOOTING COMMANDS ]                      │
╰──────────────────────────────────────────────────────────────────────╯

# Check if the installed script has the proper shebang line:
cat $(which aider-mcp-server)

# If the shebang line is missing or incorrect, fix it manually:
echo '#!/usr/bin/env node' > /tmp/fixed-script
cat $(which aider-mcp-server) >> /tmp/fixed-script
sudo mv /tmp/fixed-script $(which aider-mcp-server)
sudo chmod +x $(which aider-mcp-server)

# Alternatively, reinstall after clearing npm cache:
npm cache clean --force
npm uninstall -g @nbiish/giizhendam-aabajichiganan-mcp
npm install -g .

ᐴ ONAAKONIGE ᔔ CONFIGURATION ◈──◆──◇──◆──◈

You can configure the server settings within your mcp.json file when defining the server:

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ ONAAKONIGE ᔔ [ CONFIGURATION SETTINGS ]                           │
╰──────────────────────────────────────────────────────────────────────╯

"ai-tool-mcp": { // Or whatever you name this server instance
  "command": "npx",
  "args": [
    "-y", 
    "@nbiish/ai-tool-mcp" // Or @nbiish/giizhendam-aabajichiganan-mcp
  ],
  "env": {
    "AIDER_MODEL": "openrouter/google/gemini-2.5-pro-preview-03-25", // Default if not set
    "AIDER_EDITOR_MODEL": "openrouter/google/gemini-2.5-pro-preview-03-25", // Default if not set
    "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // Required for simulations
    "FINANCE_EXPERTS_OUTPUT_DIR": "/path/to/finance-experts-output", // Optional, defaults to ./output/finance-experts relative to server CWD
    "CEO_BOARD_OUTPUT_DIR": "/path/to/ceo-board-output" // Optional, defaults to ./output/ceo-and-board relative to server CWD
  },
  "cwd": "/path/to/your/project" // Set the working directory if needed
}

The server uses the following internal defaults if environment variables are not provided via mcp.json:

  • AIDER_MODEL: openrouter/google/gemini-2.5-pro-preview-03-25 (recommended, per Aider Leaderboards and EXAMPLES-aider-cli-commands.sh)
  • AIDER_EDITOR_MODEL: Same as AIDER_MODEL
  • Aider Flags: --no-detect-urls, --no-gui, --yes-always, --no-auto-commit, --no-git, --yes, --no-pretty (all required for robust non-interactive use)
  • Output Directories: Relative to the server's Current Working Directory (cwd) specified in mcp.json, defaulting to ./output/finance-experts and ./output/ceo-and-board.

Note: All aider invocations (including prompt_aider, double_compute, etc.) use these flags and model settings by default. See EXAMPLES-aider-cli-commands.sh and Aider Leaderboards for best-practice references.

Note: All aider invocations (including prompt_aider, double_compute, etc.) use these flags and model settings by default. We specifically use the whole edit format (not udiff/diff) as it provides maximum reliability with Gemini models. See EXAMPLES-aider-cli-commands.sh, Aider Leaderboards and Edit Formats for references.

Edit Format Selection: The system automatically selects the optimal edit format for each model based on the Aider Leaderboards performance data:

  • architect format for architect-mode models and DeepSeek R1
  • diff-fenced format for Gemini 2.5 Pro Preview models
  • diff format for Claude and OpenAI models
  • whole format as a safe fallback for unknown models

For more information on edit formats, see Aider Edit Formats.

ᐴ INAABAJICHIGAN ᔔ USAGE ◈──◆──◇──◆──◈

Aider Code Assistance

Use the prompt_aider tool to get expert guidance on using the aider CLI:

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ WIIDOOKAAZOWIN ᔔ [ CODE ASSISTANCE ]                              │
╰──────────────────────────────────────────────────────────────────────╯

// Example using prompt_aider
const result = await server.execute("prompt_aider", {
  prompt_text: "Create a React component that displays a counter with increment and decrement buttons",
  files: ["src/components/Counter.tsx"]  // Optional: specific files to consider
});

// The result includes detailed guidance on:
// - The recommended aider command to run
// - The optimal edit format for your model
// - Reasoning for the format recommendation
// - Any relevant warnings about API keys or configuration

// Optional: specify task type
const result = await server.execute("prompt_aider", {
  prompt_text: "Analyze this code for security vulnerabilities",
  task_type: "security",
  files: ["src/auth.ts"]
});

Double Computation

For tasks requiring verification through redundant computation:

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ NAANAAGADAWENINDIZOWIN ᔔ [ VERIFICATION ]                         │
╰──────────────────────────────────────────────────────────────────────╯

const result = await server.execute("double_compute", {
  prompt_text: "Calculate the optimal path for this algorithm and explain your reasoning",
  files: ["src/algorithms/pathfinder.ts"]
});

// The result includes guidance on running the aider command twice
// for redundant computation and verification

Financial Expert Simulation

Simulate a financial analysis from multiple expert perspectives:

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ ZHOONIYAAWICHIGEWIN ᔔ [ FINANCIAL EXPERTISE ]                     │
╰──────────────────────────────────────────────────────────────────────╯

const result = await server.execute("finance_experts", {
  topic: "Funding strategy for our new AI product line",
  output_filename: "ai_product_funding_analysis"  // Optional: custom filename
});

// Results saved to ./financial-experts/ai_product_funding_analysis_[timestamp].md

Board Meeting Simulation

Simulate a board discussion on a specific topic:

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ MAAWANJIDIWIN ᔔ [ BOARD MEETING ]                                 │
╰──────────────────────────────────────────────────────────────────────╯

const result = await server.execute("ceo_and_board", {
  topic: "Q3 Strategy Review: Expansion into European Markets",
  output_filename: "q3_europe_expansion_board_meeting"  // Optional: custom filename
});

// The tool now uses standard board roles by default, including:
// Board Chair, CEO, CFO, COO, CTO, Independent Director, Corporate Secretary/General Counsel, etc.

// You can also specify custom roles if needed:
const result = await server.execute("ceo_and_board", {
  topic: "Q3 Strategy Review: Expansion into European Markets",
  roles: ["CEO", "CFO", "CTO", "Lead Investor", "Independent Director"],
  output_filename: "q3_europe_expansion_board_meeting"
});

// Results saved to the configured output directory or default ./ceo-and-board/

ᐴ WAABANDA'IWEWIN ᔔ EXAMPLES ◈──◆──◇──◆──◈

Anishinaabe Cultural Examples

Here are some examples of how these tools could be applied in contexts relevant to Anishinaabe culture and communities:

╭──────────────────────────────────────────────────────────────────────╮
│  ᐴ ANISHINAABE INAADIZIWIN ᔔ [ CULTURAL APPLICATIONS ]               │
╰──────────────────────────────────────────────────────────────────────╯

// Example using prompt_aider for language revitalization
const result = await server.execute("prompt_aider", {
  prompt_text: "Help draft an Ojibwe language localization file (oj.json) for our UI based on this English template file. Ensure respectful and accurate translations.",
  files: ["locales/en.json", "locales/oj.json"]
});

// Example using double_compute for resource management simulation
const result = await server.execute("double_compute", {
  prompt_text: "Verify the logic in wild_rice_harvest_simulation.js for sustainable yield calculations reflecting traditional ecological knowledge principles, running it twice to ensure consistency.",
  files: ["simulations/wild_rice_harvest_simulation.js"]
});

// Example using finance_experts for community project planning
const result = await server.execute("finance_experts", {
  topic: "Financial sustainability plan for the Ojibwe Language Nest startup, considering long-term community benefit and grant opportunities.",
  output_filename: "ojibwe_language_nest_finance_plan"
});

// Example using ceo_and_board for governance simulation
const result = await server.execute("ceo_and_board", {
  topic: "Tribal Council discussion on investing treaty settlement funds into renewable energy infrastructure on reservation lands, balancing economic development with environmental stewardship.",
  roles: ["Tribal Chair", "Treasurer", "Council Member (Economic Development)", "Council Member (Natural Resources)", "Elder Advisor", "Community Member Rep"],
  output_filename: "treaty_fund_renewable_energy_discussion"
});

Tool Reference

prompt_aider

ParameterTypeDescriptionRequired
prompt_textstringThe main prompt/instruction for aiderYes
task_typestringOptional task type hint (research, docs, security, code, verify, progress)No
filesstring[]Optional list of files for aider to consider or modifyNo

double_compute

ParameterTypeDescriptionRequired
prompt_textstringThe main prompt/instruction for aiderYes
filesstring[]Optional list of files for aider to consider or modifyNo

finance_experts

ParameterTypeDescriptionRequired
topicstringThe central financial topic or query related to a project or business situationYes
output_filenamestringOptional filename (without extension) for the output markdown fileNo

ceo_and_board

ParameterTypeDescriptionRequired
topicstringThe central topic for the board discussionYes
rolesstring[]Optional list of board member roles to simulate. If not provided, standard board roles will be usedNo
output_filenamestringOptional filename (without extension) for the output markdown fileNo

Project Structure

giizhendam-aabajichiganan-mcp/
├── src/                    # Source code
│   └── index.ts            # Main server implementation
├── dist/                   # Compiled JavaScript output
├── output/                 # Configurable output directory (example)
│   ├── finance-experts/    # Financial expert simulation output
│   └── ceo-and-board/      # Board simulation output
├── package.json            # Project metadata and dependencies
└── tsconfig.json           # TypeScript configuration

Development

# Run in development mode
npm run dev

# Build
npm run build

# Test
npm test

Citation

@misc{giizhendam-aabajichiganan-mcp2025,
  author/creator/steward = {ᓂᐲᔥ ᐙᐸᓂᒥᑮ-ᑭᓇᐙᐸᑭᓯ (Nbiish Waabanimikii-Kinawaabakizi), also known legally as JUSTIN PAUL KENWABIKISE, professionally documented as Nbiish-Justin Paul Kenwabikise, Anishinaabek Dodem (Anishinaabe Clan): Animikii (Thunder), descendant of Chief ᑭᓇᐙᐸᑭᓯ (Kinwaabakizi) of the Beaver Island Band and enrolled member of the sovereign Grand Traverse Band of Ottawa and Chippewa Indians},
  title/description = {giizhendam-aabajichiganan-mcp},
  type_of_work = {Indigenous digital creation/software incorporating traditional knowledge and cultural expressions},
  year = {2025},
  publisher/source/event = {GitHub repository under tribal sovereignty protections},
  howpublished = {\url{https://github.com/nbiish/giizhendam-aabajichiganan-mcp}},
  note = {Authored and stewarded by ᓂᐲᔥ ᐙᐸᓂᒥᑮ-ᑭᓇᐙᐸᑭᓯ (Nbiish Waabanimikii-Kinawaabakizi), also known legally as JUSTIN PAUL KENWABIKISE, professionally documented as Nbiish-Justin Paul Kenwabikise, Anishinaabek Dodem (Anishinaabe Clan): Animikii (Thunder), descendant of Chief ᑭᓇᐙᐸᑭᓯ (Kinwaabakizi) of the Beaver Island Band and enrolled member of the sovereign Grand Traverse Band of Ottawa and Chippewa Indians. This work embodies Indigenous intellectual property, traditional knowledge systems (TK), traditional cultural expressions (TCEs), and associated data protected under tribal law, federal Indian law, treaty rights, Indigenous Data Sovereignty principles, and international indigenous rights frameworks including UNDRIP. All usage, benefit-sharing, and data governance are governed by the COMPREHENSIVE RESTRICTED USE LICENSE FOR INDIGENOUS CREATIONS WITH TRIBAL SOVEREIGNTY, DATA SOVEREIGNTY, AND WEALTH RECLAMATION PROTECTIONS.}
}

Release Notes

Unreleased

  • Major Refactoring: Changed the architecture of prompt_aider and double_compute tools to act as advisors rather than executors. Tools now provide expert guidance on crafting optimal aider commands with the best edit format for your model, instead of directly executing aider. This change gives users more control while still providing all the expertise needed for effective aider use.
  • Bugfix: Fixed file argument handling, switching from positional arguments to using --file flags. This resolves previous errors with file argument recognition and enables robust file-based code editing and verification.

License

This project is licensed under the terms specified in the LICENSE file. This license is a COMPREHENSIVE RESTRICTED USE LICENSE FOR INDIGENOUS CREATIONS WITH TRIBAL SOVEREIGNTY, DATA SOVEREIGNTY, AND WEALTH RECLAMATION PROTECTIONS.

Copyright © 2025 ᓂᐲᔥ ᐙᐸᓂᒥᑮ-ᑭᓇᐙᐸᑭᓯ (Nbiish Waabanimikii-Kinawaabakizi), also known legally as JUSTIN PAUL KENWABIKISE, professionally documented as Nbiish-Justin Paul Kenwabikise, Anishinaabek Dodem (Anishinaabe Clan): Animikii (Thunder), a descendant of Chief ᑭᓇᐙᐸᑭᓯ (Kinwaabakizi) of the Beaver Island Band, and an enrolled member of the sovereign Grand Traverse Band of Ottawa and Chippewa Indians. This work embodies Traditional Knowledge and Traditional Cultural Expressions. All rights reserved.

0.3.46

10 months ago

0.3.45

10 months ago

0.3.44

10 months ago

0.3.43

10 months ago

0.3.42

10 months ago

0.3.41

10 months ago

0.3.40

10 months ago

0.3.39

10 months ago

0.3.38

10 months ago

0.3.37

10 months ago

0.3.36

10 months ago

0.3.35

10 months ago

0.3.34

10 months ago

0.3.33

10 months ago

0.3.30

10 months ago

0.3.29

10 months ago

0.3.28

10 months ago

0.3.27

10 months ago

0.3.26

10 months ago

0.3.25

10 months ago

0.3.24

10 months ago

0.3.22

10 months ago

0.3.20

10 months ago

0.3.19

10 months ago

0.3.16

10 months ago

0.3.15

10 months ago

0.3.14

10 months ago

0.3.13

10 months ago

0.3.12

10 months ago

0.3.11

10 months ago

0.3.9

10 months ago

0.3.7

10 months ago

0.3.5

10 months ago

0.3.3

10 months ago

0.3.2

10 months ago

0.3.1

10 months ago

0.2.37

10 months ago

0.2.36

10 months ago

0.2.35

10 months ago

0.2.34

10 months ago

0.2.33

10 months ago

0.2.32

10 months ago

0.2.31

10 months ago

0.2.30

10 months ago

0.2.29

10 months ago

0.2.28

10 months ago

0.2.27

10 months ago

0.2.26

10 months ago

0.2.24

10 months ago

0.2.23

10 months ago

0.2.22

10 months ago

0.2.21

10 months ago

0.2.20

10 months ago

0.2.19

10 months ago

0.2.18

10 months ago

0.2.17

10 months ago

0.2.16

10 months ago

0.2.15

10 months ago

0.2.14

10 months ago

0.2.13

10 months ago

0.2.12

10 months ago

0.2.11

10 months ago

0.2.10

10 months ago

0.2.9

10 months ago

0.2.8

10 months ago

0.2.6

10 months ago

0.2.5

10 months ago

0.2.4

10 months ago

0.2.3

10 months ago

0.2.2

10 months ago

0.2.1

10 months ago

0.2.0

10 months ago