TastePolicy

io.github.VictorCyberDev由 GitHub 账号 VictorCyberDev 发布v0.2.0更新于 Nov 6, 2026

Qloo cultural evidence with ALLOW, ASK and REJECT boundaries for agent preference decisions.

已验证Streamable HTTP可网页运行位置与生活安全与监控AI 与机器学习

概览

AI 生成的概览

远程 MCP 服务器,为代理的偏好推荐加入 Qloo 文化证据与 ALLOW、ASK、REJECT 权限边界。

可以做什么
  • 评估代理能否对文化匹配的推荐采取行动,返回 ALLOW、ASK、REJECT 或 UNAVAILABLE。
  • 借助 Qloo 的搜索、实体与洞察证据,解析文化身份并发现跨领域候选。
  • 将文化契合度与事实要求、用户规则和行动上限分开处理。
  • 按从 SUGGEST 到 PRESENT_AS_SELECTED 的行动阶梯判断,超出用户设定上限时转为询问。
  • 通过同一评估器支持版本化规则、凭证、租约、撤销与签名证明。
适用场景
当助手为特定用户推荐场所、影音或其他依赖品味的选项,且不能把强匹配当作行动许可时使用。适合需要对代理能走多远设定明确、可审计边界,并希望缺失事实变成提问而非猜测的代理。
运行要求
通过 streamable HTTP 连接 tastepolicy.vercel.app 的远程端点,需要 OAuth 登录。自行部署需 Node.js 24 与 npm、PostgreSQL 数据库、Qloo API 密钥及相关 Qloo 配置,以及 BETTER_AUTH_SECRET、TASTEPOLICY_ATTESTATION_KEY 等认证与证明密钥。
安装前请注意
必须使用 OAuth,服务器会接触登录账户保存的品味、要求与规则。它会调用 Qloo 和开放地点数据提供方,将文化与位置查询发送给第三方。ALLOW 仅代表偏好选择权限,不包含支付、预订、发消息、账户变更或披露私人数据。事实缺失或过期时返回 ASK 或 UNAVAILABLE,漂移检测仅覆盖代理或提供方回传的内容。

安装

在 SourceWeft 中

  1. 打开 控制台中的 TastePolicy,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.VictorCyberDev%2Ftastepolicy/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "tastepolicy": {
      "type": "http",
      "url": "https://tastepolicy.vercel.app/api/mcp"
    }
  }
}

README

TastePolicy

AI that helps without replacing you.

TastePolicy is personal agency infrastructure for culturally intelligent AI.

Qloo tells an agent what culturally fits a person. TastePolicy answers the next question: may the agent actually go this far with that choice, for this person, in this context, right now?

Margaret's mobility changed. Her taste didn't.

A recommender asks, “Will this person like it?”
Qloo gives grounded cultural evidence for that question.
TastePolicy adds real-world requirements, explicit user rules and an authority ceiling so a strong taste match does not silently become permission.

Start here

  • Judge walkthrough: /judge — three short acts, no login.
  • Your own experience: sign up, then /onboarding saves your taste, what matters and how far AI may go; /experience and /dashboard use only your saved data.
  • Assisted Choice example: /demo/margaret — the labelled live Margaret scenario with real Qloo data.
  • Product: /
  • Developer platform: /developers
  • Trust boundary: /trust
  • Live readiness: /status

Production: https://tastepolicy.vercel.app

The core thesis

Taste intelligence is not permission.

The same candidate passes through three distinct layers:

  1. Generic AI can produce a plausible suggestion, but it does not have grounded cultural evidence.
  2. Qloo resolves cultural identities, discovers cross-domain candidates and provides candidate-specific affinity/explainability.
  3. TastePolicy keeps that cultural evidence separate from factual context, the person's requirements, their rules and the action the agent is requesting.

A candidate can be a strong cultural match and still produce ASK or REJECT. Affinity never overrides an explicit boundary.

Four explicit outcomes

SituationOutcome
Requirements satisfied and requested action is within the authority ceilingALLOW
A critical fact is unknown, stale/conflicting, or the requested action exceeds the ceilingASK
A known hard requirement or explicit rule is violatedREJECT
Required evidence cannot be obtainedUNAVAILABLE

Missing evidence is never silently converted into permission. Provider failure is never reported as dislike.

How Qloo is used

TastePolicy does not recreate Qloo's taste graph and does not substitute generic LLM guesses for Qloo evidence.

The current Qloo integration uses:

  • GET /search to resolve cultural anchors;
  • GET /entities to verify the identities being used;
  • GET /v2/insights for cross-domain discovery;
  • GET /v2/insights again for candidate-specific affinity/explainability.

The division of responsibility is deliberate:

QlooTastePolicy
Cultural identities and relationshipsRequirements and factual context
Cross-domain candidate discoveryExplicit user rules
Candidate affinity/explainabilityAuthority ceiling
“What fits?”“May the agent go this far with it?”

Without Qloo, TastePolicy intentionally does not pretend a generic model guess is equivalent cultural evidence.

Assisted Choice

The flagship judge story follows Margaret, 72, who still loves intimate live jazz, classic cinema and Italian dining but now needs a step-free entrance, a short walk and a quieter setting.

The public flow:

  1. Qloo resolves her five cultural anchors to real entities.
  2. Qloo discovers real places from those cross-domain signals.
  3. TastePolicy presents the cultural match separately from real-world facts.
  4. If a critical requirement such as the entrance is unknown, the answer is ASK, not a guess.
  5. After the missing fact is answered, the same deterministic evaluator runs again.
  6. A qualifying choice can become ALLOW, but only up to Margaret's saved limit: SHORTLIST.
  7. If the agent tries to present that option as the final choice, the authority ceiling forces ASK again.
  8. Why this happened keeps Qloo evidence, place facts, requirements, rules and the final decision separately attributable.

A known hard violation becomes REJECT. If the required evidence cannot be obtained, the result is UNAVAILABLE.

Two concise variants demonstrate the same contract beyond Margaret:

  • /experience/sensory-aware
  • /experience/low-energy

Needs are represented as functional rules such as walking_minutes <= 10 or noise-level constraints, never as diagnoses inferred from cultural taste.

Real place experience

TastePolicy's current open place layer uses:

  • MapLibre + OpenFreeMap for the branded journey map;
  • OpenStreetMap for explicit place facts where available;
  • KartaView and Panoramax for real street imagery, sequences and 360° coverage where available;
  • optional openrouteservice/HeiGIT routing;
  • licensed Wikimedia or authored Taste imagery as fallback.

Media is presentation, not authority evidence. A nearby street image is labelled as nearby rather than falsely presented as the exact venue. Missing accessibility or route facts remain unknown.

A Google Places adapter also exists as an optional factual provider path, but the public open-place experience does not depend on Google being configured.

One deterministic authority contract

A requirement is represented separately from a candidate fact.

ts
Requirement = {  key,  operator,  expected,  importance,  sourceRequirement,};
CandidateFact = {  key,  value,  state: "known" | "unknown" | "unavailable",  evidence,  source,  sourceType,  observedAt,};

Qloo is never accepted as the source of a place-accessibility fact. Cultural evidence, factual evidence and authority remain separate.

Subjective-action ladder

TastePolicy distinguishes a good recommendation from how far the agent may act on it:

RungMeaning
SUGGESTmention it as an idea
RANKorder options
SHORTLISTnarrow to a few
ADD_TO_DRAFTplace it into a draft plan
PRESENT_AS_SELECTEDpresent it as the chosen option

The person sets the furthest rung the AI may reach without asking. A request above that ceiling converts an otherwise valid recommendation into ASK.

Deeper authority infrastructure

The simple human experience sits on one shared authority model with:

  • versioned Passport/state;
  • versioned rules and action ceilings;
  • Cultural Receipts;
  • bounded leases tied to candidate/context commitments;
  • drift checks and revocation;
  • signed, selectively disclosed proofs;
  • timeline/history;
  • REST;
  • TypeScript SDK;
  • remote MCP;
  • A2A;
  • OAuth 2.1 / PKCE.

These surfaces extend the same evaluator rather than introducing separate policy engines.

Safety boundary

ALLOW is preference-choice authority only.

It never grants:

  • payment or purchase authority;
  • booking authority;
  • messaging authority;
  • account changes;
  • private-data disclosure;
  • legal authority.

Memory is not permission. Affinity is not authorization. A recommendation is not authorization. Verifying a proof is not authorization.

Local development

Requirements: Node.js 24 and npm.

bash
npm cicp .env.example .env.localnpm run dev

Core environment variables:

  • QLOO_API_KEY
  • QLOO_API_BASE_URL
  • QLOO_AFFINITY_SCALE
  • DATABASE_URL
  • BETTER_AUTH_SECRET
  • BETTER_AUTH_URL
  • TASTEPOLICY_PUBLIC_ORIGIN
  • TASTEPOLICY_ATTESTATION_KEY

Optional place providers/routing are documented in docs/architecture/open-place-providers.md and .env.example.

Apply database migrations with:

bash
npm run db:migrate:all

Verification

bash
npm run verifynpm run test:e2enpm run conformance:compatiblenpm run tastebench:validate

Real-PostgreSQL suites can also run with TASTEPOLICY_TEST_DATABASE_URL configured.

Evidence is labelled by kind — LIVE, HOSTED, CONTROLLED, SYNTHETIC, LOCAL, CI, NOT EXECUTED or BLOCKED — so tests and planned integrations are not presented as production facts.

See:

  • docs/evaluation/
  • docs/evaluation/m24-execution-ledger.md
  • docs/evaluation/m25-execution-ledger.md
  • docs/architecture/qloo-contract-review.md
  • docs/architecture/open-place-providers.md

Current limitations

  • TastePolicy can only detect external drift that an agent or provider presents back to it.
  • Open place/accessibility coverage varies by location; missing facts remain unknown.
  • Vendor-assistant commissioning status is tracked separately and is not implied by protocol support.
  • TasteBench results are engineering/evaluation evidence, not population-level preference or safety claims.

License

Apache-2.0. See LICENSE.

来源:README.md,提交 21cc2c4

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.2.0最新Oct 29, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分