Back to Browse

Dpyc Oracle MCP Server

by Lonniev
Developer ToolsUse Caution3.5MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

DPYC Social Contract community concierge — free MCP for membership, governance, and onboarding

About

DPYC Social Contract community concierge — free MCP for membership, governance, and onboarding

Remote endpoints: streamable-http: https://dpyc-oracle.fastmcp.app/mcp

Security Report

3.5
Use Caution3.5High Risk

The DPYC Oracle is a community registry concierge with generally sound architecture but has several security concerns that warrant attention. The server requires GitHub token credentials for membership commits, has broad network access for registry reads and service probes, and uses unauthenticated tools that perform registration and state-modifying operations. Most critically, there are missing input validations on critical paths (service URL format, JSON structure validation, and npub format in some contexts), and insufficient error handling in the citizenship confirmation flow that could allow signature verification bypasses under specific conditions. The server's permissions align with its purpose, but the authentication model relies entirely on Nostr signature verification without additional rate limiting or anti-replay protections on privileged operations. Supply chain analysis found 6 known vulnerabilities in dependencies (1 critical, 3 high severity).

3 files analyzed · 18 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

DPYC Oracle

A free, unauthenticated MCP concierge service for the DPYC Social Contract. The Oracle answers questions about membership, governance, onboarding, and tax rates by reading the dpyc-community GitHub registry live. No credits, no Neon database, no Secure Courier, no payment or credentials required.

Available Tools

ToolParamsDescription
about()Extended narration from repo docs (README + GOVERNANCE)
lookup_member(npub)npub: strLook up a member by Nostr npub
list_services(probe, kind)probe: bool = True, kind: str = "all"Enumerate the live service network from the registry, optionally MCP-handshaking each member for its own self-description and tool inventory
get_tax_rate()Explains per-Authority ad valorem certification taxation; quotes no rate of its own and redirects to the relevant Authority's check_price
economic_model()Qualitative model of how value flows up the Certification Chain (no hardcoded rates, counts, or revenue figures)
get_rulebook()GOVERNANCE.md content
how_to_join()Tier-specific onboarding guide
how_to_add_authority()End-to-end guide for spinning up a new Tollbooth Authority (fetched live from dpyc-community)
who_is_first_curator()First Curator's npub and record
network_versions()Current recommended component versions
network_advisory()Deployment advisory for operators
service_status()Runtime version diagnostics
request_citizenship(npub, display_name)npub: str, display_name: strBegin citizenship onboarding (issues challenge)
confirm_citizenship(npub, challenge_id, signed_event_json)npub: str, challenge_id: str, signed_event_json: strComplete onboarding with signed Nostr event
register_advocate(npub, display_name, service_name, service_url, service_description)npub: str, display_name: str, service_name: str, service_url: str, service_description: strRegister a community utility service as an Advocate
register_authority(authority_npub, display_name, service_url, upstream_authority_npub)authority_npub: str, display_name: str, service_url: str, upstream_authority_npub: strRegister a new Authority (called by onboarding flow)
register_operator(operator_npub, display_name, service_url, authority_npub)operator_npub: str, display_name: str, service_url: str, authority_npub: strRegister a new Operator (called by the sponsoring Authority)
update_operator(operator_npub, service_url, display_name, authority_npub)operator_npub: str, service_url: str = "", display_name: str = "", authority_npub: str = ""Update an existing Operator's registry entry (e.g. new MCP endpoint)
deregister_operator(operator_npub, authority_npub)operator_npub: str, authority_npub: strRemove an Operator from the registry (Authority disowns the Operator)
check_ban_status(npub)npub: strCheck if an npub is banned
publish_campaign(author_npub, operator_npub, campaign_json, campaign_name, campaign_markdown)author_npub: str, operator_npub: str, campaign_json: str, campaign_name: str = "", campaign_markdown: str = ""Publish a pricing campaign to the DPYC community
list_campaigns(operator_npub, author_npub)operator_npub: str = "", author_npub: str = ""List published pricing campaigns, optionally filtered by operator or author
get_campaign(author_npub, operator_npub, slug, format)author_npub: str, operator_npub: str, slug: str, format: str = "json"Retrieve a published pricing campaign (JSON or Markdown)

Stubbed (Future)

ToolDescription
renounce_membership(npub)Citizen self-removal via automated PR
initiate_ban_election(target_npub, reason)Start economic ban voting
cast_ban_vote(election_id, vote, npub)Lightning-funded ban vote

Citizenship Onboarding

New citizens can self-register via Schnorr signature verification:

  1. request_citizenship(npub, display_name) — issues a cryptographic challenge
  2. Sign the challenge with your Nostr nsec (offline, nsec never leaves your device)
  3. confirm_citizenship(npub, challenge_id, signed_event_json) — verifies signature and auto-commits

On success, the Oracle creates an individual member file at members/citizens/{npub}.json in dpyc-community. The CI workflow auto-regenerates members.json from individual files.

Advocate Registration

Advocates are community utility services (e.g., OAuth2 collectors) that provide shared infrastructure but aren't monetized Operators. Registration is Oracle-mediated — no challenge-response needed:

register_advocate(
    npub="<service_npub>",
    display_name="My Service",
    service_name="my-service",
    service_url="https://my-service.fastmcp.app",
    service_description="What the service does",
)

The Oracle commits members/advocates/{npub}.json directly. Peer MCP servers discover the service URL via resolve_service_by_name() in the tollbooth-dpyc registry client.

How to Connect

This service is hosted on Horizon. Add it to your MCP client configuration:

{
  "mcpServers": {
    "dpyc-oracle": {
      "url": "https://dpyc-oracle.fastmcp.app/mcp"
    }
  }
}

Related Repos

The authoritative, always-current roster lives in the registry — call lookup_member() / network_versions() for live data. The stable source repos:

Core

Authorities (certification chain)

Operators

Advocates (shared utilities, unmonetized)

License

Apache-2.0

Reviews

No reviews yet

Be the first to review this server!