MeaningSpace MCP
Free, deterministic, theory-traceable computational-creativity framework that generates, develops, contrasts, evaluates, and synthesizes structured creative ideas through MCP, with no accounts, database, or model inference.
README
MeaningSpace MCP

An engine of creative strategies for AI agents — free, deterministic, theory-traceable, as an MCP server.
MeaningSpace does not generate ideas. It hands the caller moves: theory-grounded transformations to perform on their own material, each with the structure to borrow, the steps to run, what to suppress, a check that says whether the move actually happened, and the ways it usually fails.
The server never receives, represents, transforms, or judges your concept. It contributes method; you contribute content.
The distinction that matters
| MeaningSpace does | MeaningSpace does not |
|---|---|
| Return procedures drawn from computational-creativity theory | Generate ideas or write prose for you |
| Name a relation worth borrowing from a remote domain | Hold a model of your concept |
| Give you a test for whether a move succeeded | Score, rank, or assess your candidates |
| Cite its sources and state what it does not implement | Claim to measure creativity |
Try the live demo
https://meaningspace-mcp.alnx.workers.dev
MCP endpoint:
https://meaningspace-mcp.alnx.workers.dev/mcp
What is new in v0.5
v0.5 is a breaking replacement of the v0.4 tool surface. The previous tools transformed a
server-side CreativeState and produced candidate ideas and ordinal assessments. That was the
wrong shape: it put the creative act and the judgment on the server.
- Replaced the seven generation, development, evaluation, and synthesis tools with five strategy tools.
- Removed server-side concept representation entirely. There is no
CreativeState, no concept extraction, and no prose rendering. - Removed all assessment.
evaluate_ideasbecameget_review_protocol, which returns criteria, what evidence each needs, and a question to ask yourself — and explicitly does not rank. - Every operator gained a playbook: intent, what to identify first, an ordered procedure, what to project, what to suppress, a success check, failure modes, questions, and ways to push further.
- Strategies now cite their sources inline (
Gentner (1983), Structure-Mapping…) alongside implementation status and omitted constructs. - Roughly 3× faster, because nothing is transformed: about 0.04 ms for a set of eight strategies.
See CHANGELOG.md for the full v0.4-to-v0.5 migration notes.
Architecture
Static site
└─ landing page, with the operator catalogue rendered from the engine at build time
Cloudflare Worker
├─ JSON API
├─ Streamable HTTP MCP endpoint
├─ native fair-use rate limiter
└─ static asset binding
External services
└─ none
Sessions are carried by the caller: pass moves you have already run back into deepen_strategy
or contrast_strategies. The server stores nothing between requests.
Requirements
- Node.js 20 or newer; Node.js 22 is recommended.
- npm.
Run locally
npm install
npm run dev:node
Open http://127.0.0.1:8787; the MCP endpoint is at /mcp. No environment variables, migration,
API key, or payment setup is required.
Test the MCP directly
Initialize:
curl http://127.0.0.1:8787/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"initialize",
"params":{
"protocolVersion":"2025-11-25",
"capabilities":{},
"clientInfo":{"name":"local-test","version":"1.0"}
}
}'
Get strategies:
curl http://127.0.0.1:8787/mcp \
-H 'content-type: application/json' \
-d '{
"jsonrpc":"2.0",
"id":2,
"method":"tools/call",
"params":{
"name":"get_strategies",
"arguments":{
"challenge":"Find directions for a painting about absence, avoiding empty rooms and chairs.",
"domain":"contemporary painting",
"audience":"a gallery visitor who has seen many paintings about loss",
"novelty":5,
"count":3,
"seed":"local-painting-test"
}
}
}'
What a strategy looks like
{
"operator": "bisociation",
"operatorName": "Bisociation",
"basis": "Cross-domain matrices",
"whenToUse": "Your material feels coherent but predictable, and you want a collision rather than a refinement.",
"theory": {
"ids": ["koestler-bisociation", "boden-conceptual-spaces"],
"status": "operationalized",
"sources": ["Arthur Koestler (1964), The Act of Creation", "…"],
"constructsImplemented": ["…"],
"constructsOmitted": ["learned associative matrices", "…"]
},
"borrow": {
"domain": "ant colony stigmergy",
"distance": 5,
"mechanism": "evaporating signals",
"relation": "unused traces weaken while reinforced paths persist",
"consequence": "memory is maintained by continued relevance",
"roles": ["agent", "trace", "environment"]
},
"intent": "Make one element of your concept belong to two frames at once…",
"identify": ["One element of your concept that will sit in both frames…"],
"procedure": ["Describe your chosen element using only the conventions of…", "…"],
"project": ["The relation \"unused traces weaken…\"", "…"],
"suppress": ["ant colony stigmergy's vocabulary, imagery, and setting…"],
"check": "If either description alone still fully explains your result, the frames have not collided…",
"failureModes": ["ant colony stigmergy becomes decoration or simile rather than structure.", "…"],
"questions": ["Which part of the relation is structural, and which is surface resemblance?"],
"pushFurther": ["A minimal version that expresses only the bridging relationship.", "…"]
}
intent, identify, procedure, project, suppress, check, failureModes, questions,
and pushFurther are all instructions addressed to you. The server performs none of them.
MCP capabilities
Tools
get_strategies— moves to execute against your own concept.deepen_strategy— more moves inside one operator family, excluding the mechanism you already ran.contrast_strategies— moves unlike everything you report having tried.get_review_protocol— criteria, evidence, and questions for you to apply. Returns no verdicts.list_operators— the catalogue with theory status and the situation each operator suits.
Resources
creativity://operatorscreativity://theoriescreativity://lensescreativity://remote-domainscreativity://workflow
Prompt
run_strategy_session
Running a session
get_strategies → pick one move
↓ complete its identify list against your own material
↓ run its procedure, honour its suppress list
↓ apply its check — if it fails, the move did not happen
deepen_strategy → push that operator further
contrast_strategies → leave the region entirely
get_review_protocol → compare candidates yourself
Pass the strategy object you ran straight back into deepen_strategy or into the used array of
contrast_strategies; both also accept a bare { operator, domain, mechanism }.
Review protocol
Generation is separate from judgment, and MeaningSpace does neither. get_review_protocol
returns, per criterion, what to look for and a question to ask yourself:
{
"lens": "fiction",
"criteria": [
{
"id": "tension",
"name": "Narrative tension",
"lookFor": "Unresolved opposition, changed agency, or consequential incompatibility.",
"askYourself": "What is at stake if the opposition resolves too early?"
}
],
"procedure": ["Assess each candidate against every criterion on its own, before comparing…"],
"caution": "These are review aids. Nothing here measures creativity…"
}
Lenses: general, business, fiction, visual_art, prompt_design, research, education.
JSON API
All endpoints are free and unauthenticated:
GET /api/health
GET /api/operators
GET /api/theories
GET /api/lenses
GET /api/domains
POST /api/v1/strategies
POST /api/v1/deepen
POST /api/v1/contrast
POST /api/v1/review-protocol
POST /mcp
MCP Inspector
Create mcp.local.json:
{
"mcpServers": {
"meaningspace-local": {
"type": "http",
"url": "http://127.0.0.1:8787/mcp"
}
}
}
Launch a current MCP Inspector release and choose meaningspace-local. To inspect the live
deployment, swap the URL for https://meaningspace-mcp.alnx.workers.dev/mcp.
Test and validate
npm run check
That runs strict TypeScript, the unit and integration suite, the browser asset build, a real local HTTP MCP smoke test, and the determinism benchmark. The suite verifies, among other things:
- deterministic output for a fixed seed;
- that every operator returns a complete, executable playbook;
- that no idea, score, verdict, or representation of the caller's concept appears in any response;
- that procedures address the caller and name what they borrow;
- that
deepen_strategystays in its family and excludes the mechanism already run; - that
contrast_strategiesavoids every move it was told about; - that the review protocol never leaks a ranking;
- graceful degradation when the avoid lists exhaust the catalogue.
Deploy to Cloudflare
npm install
npx wrangler login
npm run deploy
No D1, KV, secrets, model provider, or payment account is required. APP_URL in
wrangler.jsonc is optional: same-origin and localhost requests are allowed automatically.
Theory and claims
See THEORY.md for the implementation matrix and REFERENCES.bib
for bibliographic data.
The intended claim for v0.5 is:
MeaningSpace is a deterministic, theory-traceable library of creative procedures, with an explicit account of which constructs from each cited theory it does and does not implement.
It does not claim to reproduce human cognition, to measure creativity, or to fully implement every cited theory. It makes no claim about the quality of what you produce with it.
Current limitations
- The catalogue is hand-authored: eight operators and twenty-two source domains with two mechanisms each. Long sessions will exhaust it, and
diagnostics.avoidanceRelaxedtells you when they have. - Source-domain distance is a catalogue constant, not measured against a corpus or an observer.
- Operator selection is deterministic traversal, not a diagnosis of your brief.
whenToUseis there for you to choose with; the server does not read your challenge. - Structure mapping is a procedure to follow, not a Structure-Mapping Engine.
- Blending does not search recursive blend networks or formal optimality principles.
- No empirical study has established that these procedures improve creative outcomes.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。