시나리오 시뮬레이션, 다기준 의사결정 분석 및 고정밀 금융 계산을 통해 AI agent가 결정론적 추론을 수행할 수 있도록 지원합니다.
다른 이름 inity13/agentstack-mcp
- 스타
- 0
- Tools
- 6
- 다운로드, 30일
- —
- 최신 버전
- 1.0.1
- 마지막 커밋
- 2026년 10월 20일
- 라이선스
- MIT
AgentStack MCP란?
AgentStack은(는) MCP server입니다. 시나리오 시뮬레이션, 다기준 의사결정 분석 및 고정밀 금융 계산을 통해 AI agent가 결정론적 추론을 수행할 수 있도록 지원합니다. 6개 도구를 제공합니다. 예: plan_to_valuation, evaluate_options_with_scenarios, stress_test_decision.
프로젝트 README에서 생성된 요약
AgentStack MCP server 정보
AgentStack MCP는 AI agent가 결정론적 시뮬레이션, 다기준 의사결정 분석 및 고정밀 금융 수학을 수행할 수 있도록 통합된 추론 스택을 제공합니다. ScenarioSim, DecisionMatrix, PrecisionCalc라는 세 가지 전문 엔진을 단일 엔드포인트로 묶어 제공합니다. 이를 통해 agent는 비즈니스 시나리오를 투영하고 즉시 순현재가치(NPV)나 내부수익률(IRR)을 계산하는 것과 같은 복잡한 추론 파이프라인을 여러 번의 개별 연결로 인한 지연 없이 실행할 수 있습니다.
개발자는 npx를 사용하여 stdio를 통해 로컬에서 이 MCP server를 사용하거나 HTTP를 통해 호스팅된 버전에 연결할 수 있습니다. 호스팅 서비스는 IP당 하루 20회 호출로 제한되는 무료 티어를 제공하며, 유료 플랜은 API key를 통해 더 높은 일일 할당량을 제공합니다. 시스템은 decimal.js를 사용하여 40자리 정밀도를 유지하므로, 동일한 입력에 대해 수학적 출력이 바이트 단위까지 일치함을 보장합니다. 또한 사용자는 사용 가능한 도구 세트를 제한하고 노이즈를 줄이기 위해 finance, decision, simulation과 같은 특정 프로필을 로드할 수 있습니다.
활용 사례
- 1전략적 옵션 순위 지정agent가 다양한 비즈니스 옵션의 결과를 시뮬레이션하고 가중치가 적용된 기준에 따라 순위를 매겨 비교할 수 있습니다.
- 2스트레스 테스트 수행agent가 모든 가용 옵션에 대해 특정 가정을 변경함으로써 의사결정의 민감도를 테스트할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
AgentStack MCP 설치 방법
형식 확인: 2026년 11월 10일Claude Code에 AgentStack MCP 설치
$ claude mcp add agentstack-mcp -- npx -y agentstack-mcpCursor에 AgentStack MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"agentstack-mcp": {
"command": "npx",
"args": [
"-y",
"agentstack-mcp"
]
}
}
}VS Code에 AgentStack MCP 설치
.vscode/mcp.json
{
"servers": {
"agentstack-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"agentstack-mcp"
]
}
}
}Claude Desktop에 AgentStack MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"agentstack-mcp": {
"command": "npx",
"args": [
"-y",
"agentstack-mcp"
]
}
}
}Codex에 AgentStack MCP 설치
~/.codex/config.toml
[mcp_servers.agentstack-mcp] command = "npx" args = ["-y", "agentstack-mcp"]
Gemini CLI에 AgentStack MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"agentstack-mcp": {
"command": "npx",
"args": [
"-y",
"agentstack-mcp"
]
}
}
}AgentStack MCP 도구 6
README에서 감지됨plan_to_valuationevaluate_options_with_scenariosstress_test_decisionfinancedecisionsimulation
| plan_to_valuation | — | |
| evaluate_options_with_scenarios | — | |
| stress_test_decision | — | |
| finance | — | |
| decision | — | |
| simulation | — |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능inity13/agentstack-mcp is public and reachablegithub.com/inity13/agentstack-mcp ↗통과
- 패키지가 이 저장소를 소스로 지정agentstack-mcp names inity13/agentstack-mcp as sourcenpmjs.com/package/agentstack-mcp ↗통과
- 빌드 출처(Sigstore 증명)No build attestation published for this release검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-10-20github.com/inity13/agentstack-mcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from agentstack-mcp통과
- 패키지와 의존성에 심각한 보안 권고 없음2 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음6 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨No tool named like delete, drop or exec통과
- 원격 endpoint가 MCP 핸드셰이크에 응답initialize answered with protocol 2025-06-18 in 67 ms통과
README
GitHub에서 보기AgentStack MCP
One deterministic reasoning stack for AI agents — behind a single Model Context Protocol (MCP) endpoint and one API key:
simulate (ScenarioSim) → decide (DecisionMatrix) → compute (PrecisionCalc)
plus cross-domain composite tools that chain the three. Every number runs
through decimal.js at 40-digit precision
(never floats), so identical inputs always produce byte-identical output.
The server is stateless — no database, no sessions.
AgentStack bundles three standalone MCP servers so an agent installs one server, uses one key, and can run reasoning that spans all three domains. It imports the same engines directly (no HTTP proxying) — zero added latency, no cascading failure.
🌐 Live hosted server (free, no install)
https://agentstack-mcp.pages.dev/mcp
{ "mcpServers": { "agentstack": {
"type": "http", "url": "https://agentstack-mcp.pages.dev/mcp" } } }
Free tier: no key, 20 calls/day per IP. Paid plans (Starter $19/mo · 8,000/day,
Pro $59/mo · 80,000/day) return an API key sent as X-API-Key. One key covers
all three products and the composites — about half the cost of subscribing to them
separately. Landing page: https://agentstack-mcp.pages.dev.
The three namespaces (24 tools)
| namespace | engine | tools |
|---|---|---|
sim_* |
ScenarioSim — what-if / scenario simulation | sim_run, sim_sensitivity, sim_break_even, sim_compare, sim_list_templates |
decide_* |
DecisionMatrix — multi-criteria decision analysis | decide, decide_score, decide_sensitivity, decide_compare_two, decide_list_methods |
calc_* |
PrecisionCalc — exact finance/business math | calc_metric, calc_list_metrics, calc_currency_convert, calc_business_days, calc_compound_growth, calc_npv, calc_irr, calc_loan_amortization, calc_depreciation |
| meta | — | list_capabilities, health_check |
Note on two deliberately-namespaced collisions:
sim_sensitivityvaries scenario inputs;decide_sensitivityvaries criteria weights. They are different operations — the prefix disambiguates them for the agent.
Composite tools — the reason to use the stack
Deterministic end-to-end; each chains engines that no single server bundles:
| Tool | Pipeline | What it does |
|---|---|---|
plan_to_valuation |
simulate → compute | Project a scenario, take a per-period cash-flow line (cashflow_metric), and value it: NPV at a discount rate, IRR, undiscounted total. initial_investment becomes the period-0 outflow (needed for IRR). |
evaluate_options_with_scenarios |
simulate → decide | Project each option as its own scenario, then rank the options against weighted criteria drawn from the scenario outcomes (key_results). |
stress_test_decision |
simulate × decide | Stress one scenario assumption across every option and report how often the baseline winner survives (robustness) and where it flips. |
Composite responses report the pipeline they ran and carry each stage's
structured output, so an agent can drill into any step.
Profiles — fight tool-selection noise
Append ?profile= to the endpoint to load only a subset:
| profile | tools |
|---|---|
all (default) |
every tool (24) |
finance |
calc_* + plan_to_valuation + meta |
decision |
decide_* + evaluate_options_with_scenarios + stress_test_decision + meta |
simulation |
sim_* + all composites + meta |
{ "mcpServers": { "agentstack": {
"url": "https://agentstack-mcp.pages.dev/mcp?profile=finance" } } }
Response envelope
Namespaced tools return the exact envelope of their underlying product. Composite
tools add composite, pipeline, per-stage blocks, methodology, notes, and a
plain-language explanation. Errors are always structured data:
{ "status": "error", "error": { "type": "unknown_metric", "message": "...", "hint": "..." } }
Example — plan_to_valuation (trimmed):
{
"status": "success",
"composite": "plan_to_valuation",
"pipeline": ["scenariosim.run_scenario", "precisioncalc.net_present_value", "precisioncalc.internal_rate_of_return"],
"scenario": { "template": "saas_growth", "horizon": 12, "key_results": { "ending_mrr": 26982.1 } },
"cashflow_metric": "mrr",
"cashflows": [-150000, 14040, 15600, "..."],
"valuation": { "discount_rate": 0.01, "npv": 11157.386023, "irr": 0.02504, "value_creating": true },
"explanation": "Projecting 'saas_growth' over 12 month(s) and valuing the 'mrr' stream at 1%/period gives an NPV of ..."
}
Project structure
agentstack-mcp/
├── worker-src/
│ ├── index.mjs # Cloudflare Pages Function: MCP transport, namespacing, profiles, billing
│ ├── composites.mjs # the 3 cross-domain tools (simulate -> decide -> compute)
│ ├── billing.mjs # Stripe + KV: one key / one quota for the whole stack
│ └── engines/ # vendored, unmodified product engines (100% deterministic)
│ ├── scenariosim.mjs
│ ├── decisionmatrix.mjs
│ └── precisioncalc.mjs
├── server.mjs # local stdio MCP server (same engines + composites; AGENTSTACK_PROFILE env)
├── site/ # landing page + mcp.json + llms.txt + _worker.js (built)
├── tests/composites.test.mjs
├── examples/agent_example.mjs
├── scripts/sync-engines.sh # re-vendor engines from the sibling repos
├── package.json · wrangler.toml · server.json · smithery.yaml · Dockerfile · LICENSE
└── README.md
Why vendor the engines? So this repo is self-contained and reproducible. The
engines are the same deterministic modules that power the three standalone
servers; npm run sync-engines re-copies them from the sibling repos when an
upstream change lands.
Run it locally
git clone <your-fork> agentstack-mcp && cd agentstack-mcp
npm install
npm test # composite-logic tests (no network)
npm run dev # -> http://127.0.0.1:8788/mcp
node examples/agent_example.mjs # hosted demo
node examples/agent_example.mjs http://127.0.0.1:8788
node server.mjs # dependency-light stdio server (AGENTSTACK_PROFILE=finance to subset)
Quick manual call:
curl -s http://127.0.0.1:8788/mcp \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_capabilities","arguments":{}}}'
Install via npm (stdio, no hosting)
Run the server locally over stdio with a single command — nothing to deploy:
npx -y agentstack-mcp
Claude Desktop / any stdio MCP client (claude_desktop_config.json):
{ "mcpServers": { "agentstack": { "command": "npx", "args": ["-y", "agentstack-mcp"] } } }
This is the same deterministic engine as the hosted server, running on your machine.
Client configuration
Cursor — ~/.cursor/mcp.json
{ "mcpServers": { "agentstack": { "url": "https://agentstack-mcp.pages.dev/mcp" } } }
Claude Desktop — claude_desktop_config.json (via mcp-remote)
{ "mcpServers": { "agentstack": { "command": "npx", "args": ["-y", "mcp-remote", "https://agentstack-mcp.pages.dev/mcp"] } } }
VS Code — .vscode/mcp.json
{ "servers": { "agentstack": { "type": "http", "url": "https://agentstack-mcp.pages.dev/mcp" } } }
Windsurf — ~/.codeium/windsurf/mcp_config.json
{ "mcpServers": { "agentstack": { "serverUrl": "https://agentstack-mcp.pages.dev/mcp" } } }
Add "headers": { "X-API-Key": "ssak_live_..." } once you have a key.
Example composite payloads
Rank growth strategies on their projected outcomes:
{ "name": "evaluate_options_with_scenarios", "arguments": {
"template": "saas_growth", "horizon": 12,
"options": [
{ "name": "Aggressive", "inputs": { "new_customers_per_period": 60, "churn_rate": 0.05 } },
{ "name": "Lean", "inputs": { "new_customers_per_period": 20, "churn_rate": 0.02 } }
],
"criteria": [
{ "metric": "ending_mrr", "weight": 3, "direction": "benefit" },
{ "metric": "total_churned_customers", "weight": 1, "direction": "cost" }
]
} }
Value a plan's MRR stream:
{ "name": "plan_to_valuation", "arguments": {
"template": "saas_growth", "horizon": 12,
"inputs": { "new_customers_per_period": 60, "churn_rate": 0.05, "arpu": 60 },
"cashflow_metric": "mrr", "rate": 0.01, "initial_investment": 150000
} }
Stress-test the decision:
{ "name": "stress_test_decision", "arguments": {
"template": "saas_growth", "horizon": 12,
"options": [ { "name": "Aggressive", "inputs": { "churn_rate": 0.05 } },
{ "name": "Lean", "inputs": { "churn_rate": 0.02 } } ],
"criteria": [ { "metric": "ending_mrr", "weight": 3 } ],
"stress": { "variable": "churn_rate", "variation": 0.5, "steps": 5 }
} }
Deploy on Cloudflare Pages
npm install
npx wrangler login
npm run deploy # esbuild -> site/_worker.js, then wrangler pages deploy
Runs fully free / private with no bindings or secrets (fails open on the free
tier). For billing: bind a KV namespace AGENTSTACK_KV, set PRICE_STARTER /
PRICE_PRO in [vars], and add Stripe secrets:
wrangler pages secret put STRIPE_SECRET_KEY --project-name agentstack-mcp
wrangler pages secret put STRIPE_WEBHOOK_SECRET --project-name agentstack-mcp
Routes: /mcp (Streamable HTTP), /checkout, /success, /portal, /webhook, /metrics.
Auth & rate limiting
Enforced in worker-src/billing.mjs: identify() reads X-API-Key /
Authorization: Bearer and falls back to per-IP free tier; consumeQuota() is a
KV daily counter (the single gating point). One key / one quota spans the whole
stack. Marked NOTE (auth) / NOTE (rate limiting) seams show where to swap in
JWT/mTLS or a token-bucket. None of it touches the deterministic math.
Relationship to the standalone servers
AgentStack is additive, not a replacement. The three products keep running on their own for single-domain use:
- ScenarioSim — https://scenariosim-mcp.pages.dev/mcp
- DecisionMatrix — https://decisionmatrix-mcp.pages.dev/mcp
- PrecisionCalc — https://precisioncalc-mcp.pages.dev/mcp
License
MIT — see LICENSE.
AgentStack MCP 질문
AgentStack MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add agentstack-mcp -- npx -y agentstack-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
AgentStack MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
AgentStack MCP는 어떤 도구를 제공하나요?
6개 도구를 제공합니다. 예: plan_to_valuation, evaluate_options_with_scenarios, stress_test_decision, finance, decision.
서버에서 데이터나 사용자 세션을 저장하나요?
아니요, 서버는 상태를 유지하지 않는 stateless 방식이며 데이터베이스를 사용하거나 세션을 유지하지 않습니다.
agent가 사용할 수 있는 도구를 제한할 수 있나요?
네, 프로필을 사용하여 finance, decision, simulation과 같은 특정 도구 세트만 로드할 수 있습니다.
무료 티어가 있나요?
네, API key 없이도 IP당 하루 20회의 호출이 가능한 무료 티어를 제공합니다.