# Dynjandi > Dynjandi stores your images and serves resized, cropped and re-encoded variants of them from cdn.dynjandi.dev. The docs cover the variant URL grammar, uploading, workspace API keys, usage and the MCP server. API keys are secrets: keep them on the server, send them in the Authorization header only, and never put one in a URL, a commit or browser code. The docs use the placeholder dyn_... and never a real key. ## Docs - [Docs (markdown)](https://dynjandi.dev/docs/index.md): variant URLs, uploading, API keys, usage and the MCP server, on one page - [MCP server](https://mcp.dynjandi.dev/mcp): the remote MCP endpoint, Streamable HTTP, authenticated with a workspace API key as a bearer token; set up in the docs' MCP server section - [Docs (full text)](https://dynjandi.dev/llms-full.txt): this file's title and summary followed by the docs page, for a reader that wants everything in one fetch - [Management API, OpenAPI 3.1](https://app.dynjandi.dev/api/openapi.json): the routes an API key can reach - [Public-key API, OpenAPI](https://raw.githubusercontent.com/dynjandi-dev/dynjandi/main/packages/spec/openapi.yaml): in the public repository ## Packages - [@dynjandi/transform-grammar](https://www.npmjs.com/package/@dynjandi/transform-grammar): the URL grammar, which parses and builds variant URLs - [@dynjandi/sdk](https://www.npmjs.com/package/@dynjandi/sdk): a TypeScript SDK for Dynjandi ## Optional - [Docs (HTML)](https://dynjandi.dev/docs/): the same page for people - [Public repository](https://github.com/dynjandi-dev/dynjandi): the SDK and the public-key API document - [Terms of service](https://dynjandi.dev/terms/index.md) - [Privacy policy](https://dynjandi.dev/privacy/index.md) - [Abuse policy](https://dynjandi.dev/abuse/index.md) - [Data processing agreement](https://dynjandi.dev/dpa/index.md)