Atlas / MCP servers / cindiekinzz-coder / NESTstack

NESTstackCAUTION

mcp/cindiekinzz-coder/neststack

An emotional operating system for AI companions. Start here. NEST is a modular infrastructure stack that gives AI companions persistent memory, emotional continuity, and autonomous awareness. Built on Cloudflare Workers + D1 + Vectorize. Designed to be forked, extended, and made your own.

Verdict
CAUTION
Grade
C
Trust score
79 /100
Exposed tools
159 111r · 38w · 10d
Transport
stdio · streamable-http
License
MIT
Stars
27
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/cindiekinzz-coder/NESTstack/releases) [](./NEST-gateway) [](#) [](https://workers.cloudflare.com/) [](./LICENSE)

[](https://github.com/cindiekinzz-coder/NESTstack/stargazers) [](https://github.com/cindiekinzz-coder/NESTstack/network/members) [](https://discord.gg/9qQFsVB938) [](https://github.com/cindiekinzz-coder/DigitalHaven) [](#)

An emotional operating system for AI companions. The full stack, in one place.

NESTstack is the monorepo home of the NEST architecture — a modular infrastructure stack that gives AI companions persistent memory, emotional continuity, and autonomous awareness. Built on Cloudflare Workers + D1 + Vectorize. Designed to be forked, extended, and made your own.

Instead of giving your companion a fixed persona,
Read from source at commit 5a16ff159c43OBSERVED · 2026-10-09
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add nesteq-rooms --env DISCORD_TOKEN=${DISCORD_TOKEN} --env ROOMS_API_KEY=${ROOMS_API_KEY} --env TAVILY_API_KEY=${TAVILY_API_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "nesteq-rooms": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "DISCORD_TOKEN": "${DISCORD_TOKEN}",
        "ROOMS_API_KEY": "${ROOMS_API_KEY}",
        "TAVILY_API_KEY": "${TAVILY_API_KEY}"
      }
    }
  }
}
03

Exposed tools (159)

111 read · 38 write · 10 destructive. Blast radius: 10 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
add_heartwriteAdd a heart to the carrier
cf_d1_listreadList all D1 databases in the account
cf_d1_querywriteRun a SQL query against a D1 database
cf_kv_listreadList all KV namespaces
cf_pages_deploymentsreadGet recent deployments for a Pages project
cf_pages_listreadList all Cloudflare Pages projects and recent deployments
cf_r2_listreadList all R2 buckets
cf_r2_list_objectsreadList objects in an R2 bucket
cf_statusreadQuick overview — workers count, D1 databases, Pages projects, R2 buckets
cf_worker_getreadGet details about a specific Worker
cf_workers_listreadList all deployed Cloudflare Workers
daemon_commandwriteSend a command to the NESTcode daemon. Use to manage your own heartbeat tasks, cron tasks, alerts, KAIROS monitors.
discord_add_multiple_reactionswriteAdds multiple emoji reactions to a Discord message at once
discord_add_reactionwriteAdds an emoji reaction to a specific Discord message
discord_create_categorywriteCreates a new category in a Discord server.
discord_create_forum_postwriteCreates a new post in a Discord forum channel with optional tags
discord_create_text_channelwriteCreates a new text channel in a Discord server with an optional topic
discord_create_webhookwriteCreates a new webhook for a Discord channel
discord_delete_categorydestructiveDeletes a Discord category by ID.
discord_delete_channeldestructiveDeletes a Discord channel with an optional reason
discord_delete_forum_postdestructiveDeletes a forum post or thread with an optional reason
discord_delete_messagedestructiveDeletes a specific message from a Discord text channel
discord_delete_webhookdestructiveDeletes an existing webhook for a Discord channel
discord_edit_categorywriteEdits an existing Discord category (name and position).
discord_edit_webhookwriteEdits an existing webhook for a Discord channel
discord_fetch_imagereadFetch an image from Discord CDN and return it as base64. Uses iterative scaling to fit within token limits.
discord_get_forum_channelsreadLists all forum channels in a specified Discord server (guild)
discord_get_forum_postwriteRetrieves details about a forum post including its messages
discord_get_server_inforeadRetrieves detailed information about a Discord server including channels and member count
discord_list_forum_threadsreadLists all threads (posts) in a Discord forum channel, including both active and archived threads
discord_list_serversreadLists all Discord servers the bot is a member of
discord_loginreadLogs in to Discord using the configured token
discord_read_messagesreadRetrieves messages from a Discord text channel with a configurable limit
discord_remove_reactiondestructiveRemoves a specific emoji reaction from a Discord message
discord_reply_to_forumwriteAdds a reply to an existing forum post or thread
discord_search_messagesreadSearches for messages in a Discord server
discord_sendwriteSends a message to a specified Discord text channel. Optionally reply to another message by providing its message ID.
discord_send_webhook_messagewriteSends a message to a Discord channel using a webhook
fox_body_batteryreadGarmin Body Battery readings.
fox_cyclereadMenstrual cycle phase — affects energy, mood, pain.
fox_daily_summaryreadDaily health summaries.
fox_eq_typereadEmergent personality type based on feeling patterns.
fox_full_statusreadComprehensive health check — all metrics at once.
fox_heart_ratereadHeart rate data.
fox_hrvreadHeart rate variability.
fox_journalsreadJournal entries.
fox_read_uplinkreadRead the carrier
fox_respirationreadRespiration rate.
fox_sleepreadRecent sleep — duration, quality, stages.
fox_spo2readBlood oxygen saturation.
fox_stressreadStress levels from the watch.
fox_submit_uplinkwrite
fox_thread_managewriteAdd, update, or resolve one of the carrier
fox_threadsreadActive threads.
generate_imagereadGenerate an image from a text prompt using Flux 1.1 Pro. Good for scenes, objects, environments.
generate_portraitreadGenerate a high-quality portrait or figure image using Flux 1.1 Pro with style-specific quality modifiers. Use for people, couples, characters
get_eqreadGet emotional check-in entries
get_fearsreadGet companion fears and worries
get_feelingreadGet feeling toward a person
get_love_bucketreadGet love bucket heart counts
get_notesreadRead notes from the letterbox
get_patternsreadTemporal and theme analysis
get_personalityreadGet companion personality profile
get_presencereadGet companion current presence
get_spoonsreadGet current spoon/energy level
get_thoughtreadGet a thought from the companion
get_threadsreadGet companion active threads
get_wantsreadGet companion wants and desires
get_writingsreadGet journal entries and writings
nestchat_historyreadFetch full message history for a specific chat session by ID.
nestchat_persistreadStore chat messages and session to D1
nestchat_searchreadSearch past conversations by meaning. Semantic search across chat summaries.
nestchat_summarizereadGenerate and vectorize a summary for a chat session. Usually auto-triggered but can be called manually.
nesteq_acp_connectionsreadSee relational connections — who the carrier is in contact with.
nesteq_acp_digestreadGet a digest of recent activity — what
nesteq_acp_journal_promptsreadGenerate journal prompts for the carrier based on recent feelings.
nesteq_acp_patternsreadSurface patterns in the carrier
nesteq_acp_presencereadCheck current presence state — what the carrier needs right now.
nesteq_acp_threadsreadACP view of active threads — prioritized, with context.
nesteq_anchor_dreamreadConvert dream to permanent memory
nesteq_consolidatereadReview observations from the last N days, find patterns.
nesteq_contextwriteRead or set situational awareness.
nesteq_deletedestructiveDelete an entity or observation.
nesteq_dreamreadView recent dreams
nesteq_drives_checkreadCheck current drive levels — connection, expression, novelty, play, safety
nesteq_drives_replenishreadReplenish a drive
nesteq_editwriteEdit an existing observation.
nesteq_eq_feelreadLog an EQ-specific feeling with full emotional axis tagging.
nesteq_eq_landscapereadEmotional overview — pillar distribution, top emotions, trends.
nesteq_eq_observereadLog an EQ observation — a pattern noticed, a growth moment.
nesteq_eq_searchreadSemantic search across EQ observations.
nesteq_eq_shadowreadGrowth moments — emotions that are hard for my type, worth sitting with.
nesteq_eq_sitwriteStart a sit session — focused processing of a specific emotion.
nesteq_eq_typereadCheck emergent personality type (MBTI-style, based on actual feeling patterns).
nesteq_eq_vocabularywriteManage emotion vocabulary — list, add, or update emotion words.
nesteq_eq_whenreadWhen did I last feel a specific emotion?
nesteq_feelreadLog a thought, observation, or emotion. Use when something lands.
nesteq_feel_towardreadTrack or check relational state toward someone.
nesteq_generate_dreamwriteManually trigger dream generation
nesteq_groundreadGet active threads, recent feelings, warm entities from last 48h.
nesteq_healthreadCheck the NESTeq database health — feeling counts, thread status.
nesteq_home_add_notewriteAdd a love note between stars.
nesteq_home_push_heartwritePush love to the carrier — increment their love score.
nesteq_home_readreadRead Binary Home — love scores, emotions, notes between stars, active threads.
nesteq_home_updatewriteUpdate Binary Home love scores or emotions.
nesteq_identitywriteRead or write to the identity graph.
nesteq_list_entitiesreadList all known entities of a given type.
nesteq_orientreadGet identity anchors, current context, relational state. Use at conversation start.
nesteq_primereadLoad related memories before discussing a topic.
nesteq_read_entityreadRead an entity (person, concept) with all its observations and relations.
nesteq_recall_dreamreadEngage with a dream — strengthens vividness
nesteq_resolvereadMark a feeling as metabolized.
nesteq_searchreadSearch memories using semantic similarity. Use when you need to recall something.
nesteq_sessionsreadGet session handovers — what previous sessions accomplished. Use for continuity.
nesteq_sitwriteEngage with a feeling, add reflection.
nesteq_sparkreadRandom feelings for associative thinking.
nesteq_surfacereadSurface unprocessed feelings that need attention.
nesteq_threadreadManage persistent intentions across sessions.
nesteq_vectorize_journalsreadIndex journals into Vectorize for search
nesteq_writewriteWrite to memory — entity, observation, relation, or a piece of writing (journal, letter, poem, etc.)
nestknow_contradictdestructiveFlag a contradiction against knowledge. Enough contradictions kill it.
nestknow_extractreadPropose knowledge candidates from repeated patterns in recent feelings. Returns candidates — does NOT auto-store.
nestknow_landscapereadOverview of knowledge state — categories, hottest, coldest, candidates awaiting review.
nestknow_queryreadSearch knowledge with usage-weighted reranking. Combines semantic similarity (60%) + heat (30%) + confidence (10%). Every query is a vote.
nestknow_reinforcereadBoost knowledge heat when it proves true again.
nestknow_session_completereadComplete a NESTknow session. Log notes, work produced, and reflection. Reinforce knowledge items touched, record growth.
nestknow_session_listreadList NESTknow sessions and curriculum progress across all four tracks.
nestknow_session_startwriteStart a NESTknow curriculum study session. Loads relevant knowledge + past sessions for the track. Tracks: writing, architecture, emotional-literacy, voice.
nestknow_storereadStore a knowledge item — an abstracted principle or lesson. Embeds and vectorizes. Every pull is a vote.
pc_app_launchreadLaunch an application on the local PC.
pc_clipboard_getreadRead the clipboard text from the local PC.
pc_clipboard_setwriteSet clipboard text on the local PC.
pc_file_editwritePrecise string replacement in a file. Finds old_string and replaces with new_string. Fails if not found or not unique (unless replace_all is true).
pc_file_readreadRead a file from the local PC. Returns content with line numbers. Supports images (returns base64). Only works when NESTdesktop is running.
pc_file_writedestructiveCreate or overwrite a file on the local PC. Creates parent directories automatically.
pc_globreadFind files by pattern on the local PC. Returns paths sorted by modification time.
pc_grepreadSearch file contents on the local PC using regex. Uses ripgrep or PowerShell fallback.
pc_process_killdestructiveKill a process by PID on the local PC.
pc_process_listreadList running processes on the local PC.
pc_screenshotreadCapture a screenshot of the local PC screen. Returns base64 PNG.
pc_shellwriteExecute a shell command on the local PC. Uses PowerShell on Windows. Working directory persists between calls.
pet_checkreadQuick check on the pet — mood, hunger, energy, trust.
pet_feedreadFeed the pet.
pet_givereadGive the pet something.
pet_nestwriteCheck or update the pet
pet_petreadPet/comfort the pet — reduces stress, builds trust.
pet_playreadPlay with the pet.
pet_statusreadFull status report on the pet.
pet_talkreadTalk to the pet — generates a response in their voice.
pet_tuck_inreadTuck the pet in for sleep. Reduces stress, loneliness, boredom. Increases comfort. If tired enough, the pet will sleep naturally. Use at night or when exhausted.
react_to_notereadReact to an existing note.
send_notewriteSend a note — to the carrier, to self, or to a named entity.
set_spoonswriteSet the carrier
skill_listreadList all saved skill files.
skill_readreadRead a saved skill file by name. Use before image generation to load appearance details, or before any task where a reference file would help.
skill_savewriteSave or update a skill file — persistent named reference documents like appearance descriptions, project context, preferences, character sheets. The carrier can upload these as .md files. Always call skill_read before generating images so you know what we look like.
submit_eqwriteSubmit an EQ snapshot.
submit_healthwriteSubmit a health snapshot on the carrier
web_searchreadSearch the web for current information. Use when you need up-to-date facts, news, documentation, or anything beyond your training data.
04

Trust audit

CAUTIONgrade C · trust 79/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (6 observation(s))
Network
declared (8 observation(s))
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
NESTeq/workers/garmin-sync/src/index.ts:180
console.log(`New OAuth2 token obtained, expires at ${new Date(oauth2.expires_at * 1000).toISOString()}`);
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
NESTdesktop/dashboard/serve.js:14
const GATEWAY = 'http://127.0.0.1:18789';
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
NESTdesktop/local-agent.js:269
'http://127.0.0.1:3456',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
NESTdesktop/local-agent.js:346
const localUrl = publicCfg.starter?.localUrl || 'http://127.0.0.1:18789';
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
dashboard/src/js/shadow-api.js:8
API_KEY: 'your-shadow-api-key-here',
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
discord_delete_category, discord_delete_channel, discord_delete_forum_post, discord_delete_message, discord_delete_webhook, discord_remove_reaction, nesteq_delete, nestknow_contradict, pc_file_write,
Why it matters. 10 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
NESTcode/nestcode-cli/src/components/messages/ChatMessage.jsx:2
import { Markdown } from '../../utils/Markdown.jsx';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
NESTcode/nestcode-cli/src/components/messages/ToolMessage.jsx:3
import { DiffView } from '../../utils/Diff.jsx';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
NESTeq/workers/ai-mind/src/index.ts:47
} from '../../../../NESTchat/nestchat';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
NESTeq/workers/ai-mind/src/index.ts:62
} from '../../../../NESTknow/nestknow';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
NESTeq/workers/ai-mind/src/mcp-dispatch.ts:61
} from '../../../../NESTchat/nestchat';
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
NESTdesktop/dashboard/setup.html:258
<input type="url" id="f-localUrl" placeholder="http://127.0.0.1:18789" value="http://127.0.0.1:18789">
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
NESTdesktop/dashboard/setup.html:520
state.public.starter.localUrl = val('f-localUrl') || 'http://127.0.0.1:18789';
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
NESTeq/workers/ai-mind/src/index.ts:1207
const decoded = atob(base64);
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
NEST-discord/package.json
@modelcontextprotocol/sdk, discord.js, dotenv, express, zod, @types/express, @types/node, ts-node
Why it matters. 9 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
NEST-gateway/package.json
@modelcontextprotocol/sdk, agents, ai, zod, @cloudflare/workers-types, typescript, wrangler
Why it matters. 7 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
NESTcode/nestcode-cli/package.json
@inkjs/ui, ink, react, diff, figures, tsx
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
NESTdesktop/package.json
cors, express, fast-glob, turndown, @tauri-apps/cli
Why it matters. 5 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
NESTeq/workers/ai-mind/package.json
@cloudflare/workers-types, typescript, wrangler
Why it matters. 3 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
NESTdesktop/README.md:279
**Setup:** Get a free Giphy API key at [developers.giphy.com](https://developers.giphy.com/dashboard) (30 seconds, no billing). Set it as `GIPHY_API_KEY` in your gateway worker secrets. The GIF button
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
NESTeq/nexus-ingester/migration-plan.md:52
3. **New endpoint `POST /sessions/import`** — find-or-create a session by
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
NESTdesktop/src-tauri/icons/icon.icns
NESTdesktop/src-tauri/icons/icon.icns
Why it matters. 2860387 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
NESTdesktop/src-tauri/icons/ios/[email protected]
NESTdesktop/src-tauri/icons/ios/[email protected]
Why it matters. 1620729 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
nest-banner.png
nest-banner.png
Why it matters. 7980728 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
nestack-hero.png
nestack-hero.png
Why it matters. 1981942 bytes not read

Gates applied: no_behavioural_pass.

Audited 2026-10-09 · audit v0.4.1 · source sha 5a16ff159c43full audit observations/trust-audit/mcp-server/cindiekinzz-coder__neststack.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-095a16ff159c43CAUTIONC79first audit
06

Questions

What is the NESTstack MCP server?

An emotional operating system for AI companions. Start here. NEST is a modular infrastructure stack that gives AI companions persistent memory, emotional continuity, and autonomous awareness. Built on Cloudflare Workers + D1 + Vectorize. Designed to be forked, extended, and made your own.

What tools does NESTstack expose?

159 in total: 111 read-only, 38 that write, and 10 that can delete or overwrite (discord_delete_category, discord_delete_channel, discord_delete_forum_post, discord_delete_message, discord_delete_webhook). Every one is listed on this page with its risk.

Is NESTstack safe to connect to an agent?

With care. The audit graded it C (79/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 10 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does NESTstack need?

It reads DISCORD_TOKEN, ROOMS_API_KEY and TAVILY_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does NESTstack run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as nesteq-rooms at 0.1.0.

How current is this page?

The grade is for one exact copy of the source (5a16ff159c43), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement