mcpbeat

Run Dns Server

hashicorp/run-dns-server

Guide for running a local containerized DNS server. Use this when asked to run an acceptance test or to run a test with the prefix `TestAcc`.

351 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
147
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/hashicorp/terraform-provider-dns --skill run-dns-server

The instruction itself

as written by the author

Before running any acceptance tests for the DNS provider, start a DNS server:

  • Check whether the DNS server is already alive by querying its locally-mapped port:
   dig @127.0.0.1 -p 15353 +short ns.example.com

Expected command output is "127.0.0.1."

  • If the DNS server is not already alive, then start the DNS server by running this command in the background:
   docker run --privileged --cgroupns=host -d --tmpfs /tmp --tmpfs /run \
    -v /sys/fs/cgroup:/sys/fs/cgroup:rw \
    -v /etc/localtime:/etc/localtime:ro \
    -v $PWD/internal/provider/testdata/named.conf.kerberos:/etc/named.conf:ro \
    -p 127.0.0.1:15353:53 \
    -p 127.0.0.1:15353:53/udp \
    --rm --name ns --hostname ns.example.com ns
  • After starting the DNS server, verify that the DNS server is alive by querying its locally-mapped port:
   dig @127.0.0.1 -p 15353 +short ns.example.com

Expected command output is "127.0.0.1." Display no output unless there is a problem.

  • If there is a problem, do not run the acceptance tests.

Add these environment variables to all go test commands for acceptance tests in the DNS provider:

  • DNS_UPDATE_SERVER=127.0.0.1
  • DNS_UPDATE_PORT=15353

How to use it

Copy the folder

Take hashicorp/run-dns-server from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference docker. Without those the skill loads but fails at the first command.