Skip to main content
Glama
publishednft

Published NFT Literature MCP Server

Official
by publishednft
README.md
# Published NFT — Literature MCP Server

Open-source [Model Context Protocol](https://modelcontextprotocol.io)-style knowledge-base
server for [Published NFT](https://publishednft.io) — the Flow-blockchain marketplace for books
and literary NFTs. It gives AI assistants (Claude, Cursor, and any MCP/REST client) real-time
access to the Published NFT documentation, NFT collections, Flow blockchain education, pricing,
bookmarks, decorations, and the Published Daily newspaper.

This is the runnable, framework-agnostic extraction of the server hosted at
**`https://publishednft.io/api/mcp`** (which powers the "Cindy" voice agent).

## Tools

| Tool | What it does |
|------|--------------|
| `searchDocumentation` | Full-text search across the bundled docs (relevance-ranked). |
| `getCollectionInfo` | Details for an NFT collection (Genesis Pass, BOAST6, classics, …). |
| `getFlowBlockchainInfo` | Flow blockchain concepts — Cadence, FCL, wallets, testnet/mainnet. |
| `getPricingInfo` | Current prices and payment methods (DUC / FLOW / USD). |
| `getBookmarksInfo` | Literary bookmark NFTs and their traits. |
| `getDecorationsInfo` | Avatar decorations (frames, stamps, spines, bookplates). |
| `getAppFeaturesInfo` | Platform features (VR/AR reading, EPUB reader, AI assistant, …). |
| `getNewspaperInfo` | The Published Daily on-chain newspaper. |

## Transport (REST)

```
GET  /   → health check + tool list
POST /   → { "tool": "<name>", "args": { ... } }  → { success, tool, result }
```

Both `{ "tool", "args" }` and `{ "name", "arguments" }` request shapes are accepted.

## Run it

Requires Node ≥ 18.

```bash
git clone https://github.com/publishednft/mcp-literature-server.git
cd mcp-literature-server
npm install
npm start            # tsx src/server.ts  → http://localhost:8000
# or build + serve
npm run build && npm run serve
```

```bash
# Health
curl http://localhost:8000

# Search
curl -X POST http://localhost:8000 \
  -H 'Content-Type: application/json' \
  -d '{ "tool": "searchDocumentation", "args": { "query": "genesis pass" } }'

# Pricing
curl -X POST http://localhost:8000 \
  -d '{ "tool": "getPricingInfo", "args": {} }'
```

`PORT` env var overrides the default `8000`.

## Use the hosted server (no install)

Point any MCP/SSE-capable client at the live endpoint:

```
https://publishednft.io/api/mcp?userId=YOUR_WALLET_ADDRESS
```

See the connect guide at **https://publishednft.io/mcp**.

## Project layout

```
src/
  server.ts          # plain Node HTTP server (GET health / POST dispatch)
  tools/             # the 8 tool handlers + zod schemas
  utils/             # markdown loader, search index, helpers
docs/                # the literature knowledge base (markdown)
```

The only runtime dependency is [`zod`](https://github.com/colinhacks/zod) (schema validation);
everything else is Node builtins.

## License

[MIT](./LICENSE) © Published NFT