mirror of
https://github.com/NewFuture/DDNS.git
synced 2026-10-19 16:15:45 +00:00
* feat(mcp): add Streamable HTTP transport Add a modern MCP 2026-07-28 HTTP endpoint for standalone and Web modes, with shared listener configuration, authentication, schema, tests, and bilingual documentation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(tests): support Python 2 HTTP assertions Normalize response header names and call handler methods through their underlying functions so the HTTP tests behave consistently on Python 2.7 and Python 3. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(mcp): harden HTTP request handling Validate mirrored request IDs, align Config Studio listener checks, bound socket reads, and accept the binary wrapper's documented SIGINT exit status. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(mcp): align HTTP negotiation validation Reject unavailable Accept media types by quality and keep schema host validation consistent with runtime listener checks. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(tests): validate host schema behavior Assert accepted and rejected host samples instead of comparing Unicode escape representations that differ on Python 2.7. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(tests): avoid cross-engine schema regex Keep the schema pattern contract without executing its ECMA-262 Unicode escape through Python 2's incompatible regex engine. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(mcp): validate HTTP request boundaries Reject empty tokens and malformed JSON-RPC request shapes, and keep Config Studio bracket validation aligned with runtime listener handling. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(mcp): tighten HTTP input validation Reject legacy notifications, nested host brackets, and document the required JSON content type so validation remains consistent across runtime, schema, and Config Studio. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(mcp): validate Origin before method errors Apply the existing Origin policy to non-POST MCP requests and return CORS headers for configured allowed origins. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * docs(mcp): clarify proxy Origin allowlist Explain that browser clients behind TLS termination must allowlist the public HTTPS origin even when the public page appears same-origin. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * docs(mcp): add standalone server guide Move MCP client setup, transports, tools, security, and protocol limits into dedicated Chinese and English pages with matching navigation and index links. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(mcp): reject duplicate routing headers Reject repeated MCP protocol, method, and name headers before body consistency checks across Python 2 and Python 3. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(mcp): validate named request headers Validate Mcp-Name for tools/call, prompts/get, and resources/read before dispatching unsupported methods. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
106 lines
5.6 KiB
Plaintext
106 lines
5.6 KiB
Plaintext
# DDNS Documentation - AI/LLM Context
|
|
|
|
> This file provides structured documentation for AI language models and assistants.
|
|
|
|
## Project Overview
|
|
|
|
**Name:** DDNS - Dynamic DNS Client
|
|
**Repository:** https://github.com/NewFuture/DDNS
|
|
**Documentation:** https://ddns.newfuture.cc
|
|
**License:** MIT
|
|
|
|
## Description
|
|
|
|
DDNS is a Python-based dynamic DNS client that automatically updates DNS records to match your current IP address. It supports multiple DNS providers including DNSPod, Cloudflare, AliDNS, and many others. The project supports both IPv4 and IPv6, and can be run via command line, Docker, or as a system service.
|
|
|
|
## Key Features
|
|
|
|
- Automatic IP detection (IPv4/IPv6)
|
|
- Multiple DNS provider support (18 providers)
|
|
- Multiple configuration methods (CLI, Environment Variables, JSON)
|
|
- Docker support with multi-architecture images
|
|
- Python 2.7+ and 3.x compatible
|
|
- Standard library only (no external dependencies)
|
|
|
|
## Documentation Structure
|
|
|
|
**Note:** Documentation guides are available in both HTML and Markdown formats; interactive tools are HTML-only.
|
|
- HTML: For web browsers (e.g., `/install.html`)
|
|
- Markdown: For AI/LLM consumption (e.g., `/install.md`)
|
|
- English docs mirror the Chinese paths with the `/en/` prefix (e.g., `/en/install.md`, `/en/config/json.md`, `/en/providers/cloudflare.md`).
|
|
|
|
### Core Documentation
|
|
- Homepage: https://ddns.newfuture.cc/ ([.md](https://ddns.newfuture.cc/index.md))
|
|
- Installation: https://ddns.newfuture.cc/install ([.md](https://ddns.newfuture.cc/install.md))
|
|
- Docker Guide: https://ddns.newfuture.cc/docker ([.md](https://ddns.newfuture.cc/docker.md))
|
|
- Release Notes: https://ddns.newfuture.cc/release ([.md](https://ddns.newfuture.cc/release.md))
|
|
|
|
### Configuration Guides
|
|
- CLI Arguments: https://ddns.newfuture.cc/config/cli ([.md](https://ddns.newfuture.cc/config/cli.md))
|
|
- MCP Server: https://ddns.newfuture.cc/config/mcp ([.md](https://ddns.newfuture.cc/config/mcp.md))
|
|
- Environment Variables: https://ddns.newfuture.cc/config/env ([.md](https://ddns.newfuture.cc/config/env.md))
|
|
- JSON Configuration: https://ddns.newfuture.cc/config/json ([.md](https://ddns.newfuture.cc/config/json.md))
|
|
- Interactive Config Studio: https://ddns.newfuture.cc/config/studio.html (build and validate DDNS configurations in the browser)
|
|
|
|
### DNS Provider Guides
|
|
- Provider Overview: https://ddns.newfuture.cc/providers/ ([.md](https://ddns.newfuture.cc/providers/README.md))
|
|
- DNSPod: https://ddns.newfuture.cc/providers/dnspod ([.md](https://ddns.newfuture.cc/providers/dnspod.md))
|
|
- Cloudflare: https://ddns.newfuture.cc/providers/cloudflare ([.md](https://ddns.newfuture.cc/providers/cloudflare.md))
|
|
- ClouDNS: https://ddns.newfuture.cc/providers/cloudns ([.md](https://ddns.newfuture.cc/providers/cloudns.md))
|
|
- AliDNS (Alibaba): https://ddns.newfuture.cc/providers/alidns ([.md](https://ddns.newfuture.cc/providers/alidns.md))
|
|
- Tencent Cloud: https://ddns.newfuture.cc/providers/tencentcloud ([.md](https://ddns.newfuture.cc/providers/tencentcloud.md))
|
|
- Huawei Cloud: https://ddns.newfuture.cc/providers/huaweidns ([.md](https://ddns.newfuture.cc/providers/huaweidns.md))
|
|
- HE.net: https://ddns.newfuture.cc/providers/he ([.md](https://ddns.newfuture.cc/providers/he.md))
|
|
- DNS.COM / 51DNS: https://ddns.newfuture.cc/providers/51dns ([.md](https://ddns.newfuture.cc/providers/51dns.md))
|
|
- Aliesa: https://ddns.newfuture.cc/providers/aliesa ([.md](https://ddns.newfuture.cc/providers/aliesa.md))
|
|
- Callback: https://ddns.newfuture.cc/providers/callback ([.md](https://ddns.newfuture.cc/providers/callback.md))
|
|
- Debug Mode: https://ddns.newfuture.cc/providers/debug ([.md](https://ddns.newfuture.cc/providers/debug.md))
|
|
- DNSPod International: https://ddns.newfuture.cc/providers/dnspod_com ([.md](https://ddns.newfuture.cc/providers/dnspod_com.md))
|
|
- Tencent EdgeOne: https://ddns.newfuture.cc/providers/edgeone ([.md](https://ddns.newfuture.cc/providers/edgeone.md))
|
|
- Tencent EdgeOne DNS: https://ddns.newfuture.cc/providers/edgeone_dns ([.md](https://ddns.newfuture.cc/providers/edgeone_dns.md))
|
|
- NameSilo: https://ddns.newfuture.cc/providers/namesilo ([.md](https://ddns.newfuture.cc/providers/namesilo.md))
|
|
- No-IP: https://ddns.newfuture.cc/providers/noip ([.md](https://ddns.newfuture.cc/providers/noip.md))
|
|
- West.cn: https://ddns.newfuture.cc/providers/west ([.md](https://ddns.newfuture.cc/providers/west.md))
|
|
|
|
### Developer Documentation
|
|
- Configuration Design: https://ddns.newfuture.cc/dev/config ([.md](https://ddns.newfuture.cc/dev/config.md))
|
|
- Provider Development Guide: https://ddns.newfuture.cc/dev/provider ([.md](https://ddns.newfuture.cc/dev/provider.md))
|
|
|
|
### Configuration Schemas
|
|
- v4.1 Schema: https://ddns.newfuture.cc/schema/v4.1.json
|
|
|
|
## Usage Examples
|
|
|
|
### Docker:
|
|
```bash
|
|
docker run -it --rm -e DNS=dnspod -e ID=your_id -e TOKEN=your_token newfuture/ddns
|
|
```
|
|
|
|
### Command Line:
|
|
```bash
|
|
ddns --dns dnspod --id your_id --token your_token
|
|
```
|
|
|
|
## Supported DNS Providers
|
|
|
|
Canonical provider IDs: `51dns`, `alidns`, `aliesa`, `callback`, `cloudflare`, `cloudns`, `debug`, `dnscom`, `dnspod_com`, `dnspod`, `edgeone`, `edgeone_dns`, `he`, `huaweidns`, `namesilo`, `noip`, `tencentcloud`, and `west`.
|
|
|
|
## Technical Details
|
|
|
|
- **Language:** Python 2.7+ and 3.x
|
|
- **Dependencies:** Standard library only
|
|
- **Platform:** Cross-platform (Windows, Linux, macOS)
|
|
- **Docker:** Multi-architecture support (amd64, arm64, arm/v7)
|
|
|
|
## Links
|
|
|
|
- GitHub: https://github.com/NewFuture/DDNS
|
|
- Documentation: https://ddns.newfuture.cc
|
|
- Docker Hub: https://hub.docker.com/r/newfuture/ddns
|
|
- PyPI: https://pypi.org/project/ddns/
|
|
- Sitemap: https://ddns.newfuture.cc/sitemap.xml
|
|
|
|
---
|
|
|
|
*Generated by VitePress documentation builder. Last updated: {{DATE}}*
|