Agent skill

Doi Content Negotiation

by wentorai in wentorai/research-plugins

Retrieve structured metadata from any DOI via HTTP content negotiation

MITAuto-check passedResearch & Science

Install Doi Content Negotiation

skills CLI
$ npx skills add wentorai/research-plugins --skill doi-content-negotiation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wentorai/research-plugins doi-content-negotiation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/literature/metadata/doi-content-negotiation .claude/skills/doi-content-negotiation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
doi-content-negotiation
GitHub stars
298
Used in
1 other repo
Token cost
~1.5k tokens
SKILL.md length
192 words
Files
1
Skills in repo
405
Repo updated
First seen
Licence
MIT

At a glance

Retrieve structured metadata from any DOI via HTTP content negotiation

  • Works in 5 steps: Bibliography generation: Export… → Citation formatting: Generate properly… → Metadata extraction: Get structured… → …
  • Tasks that involve Citation management
  • SKILL.md covers Overview, Usage, Citeproc JSON Response and Python Usage, plus 3 more sections
  • Calls curl; reaches doi.org and dx.doi.org

What it does

Doi Content Negotiation is an agent skill from wentorai/research-plugins. Retrieve structured metadata from any DOI via HTTP content negotiation

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Citation management. It works with LaTeX. The repository describes itself as: 350+ academic research skills, MCP configs, and plugins for Research-Claw and AI agents. The licence is MIT.

When your agent uses it

  • Tasks that involve Citation management

Example prompts

  • “/doi-content-negotiation”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Bibliography generation: Export BibTeX/RIS for any DOI list
  2. Citation formatting: Generate properly formatted citations
  3. Metadata extraction: Get structured metadata for data pipelines
  4. Linked data: Retrieve RDF for knowledge graph construction
  5. Verification: Confirm publication details from authoritative source

What it can do on your machine

Read from SKILL.md and the folder at commit bf44b3c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • doi.org
    • dx.doi.org

    Also links to:

    • citation.crosscite.org
    • crossref.org
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Doi Content Negotiation loads about 1.5k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 192 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~24
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wentorai/research-plugins at commit bf44b3c, republished under its MIT licence (© wentorai). 192 words, ~1,481 tokens.

Download SKILL.mdSave it as .claude/skills/doi-content-negotiation/SKILL.md (or your agent's skills folder).
name
doi-content-negotiation
description
Retrieve structured metadata from any DOI via HTTP content negotiation

DOI Content Negotiation

Overview

Any DOI can return structured metadata in multiple formats through HTTP content negotiation — simply set the Accept header when requesting https://doi.org/{doi}. This is the most universal way to get citation metadata, BibTeX entries, JSON-LD, and RDF from any publisher without needing a specific API. Works for all 300M+ registered DOIs. Free, no authentication.

Usage

Basic Content Negotiation
bash
# Get JSON citation metadata (Citeproc JSON)
curl -LH "Accept: application/vnd.citationstyles.csl+json" \
  "https://doi.org/10.1038/nature14539"

# Get BibTeX
curl -LH "Accept: application/x-bibtex" \
  "https://doi.org/10.1038/nature14539"

# Get RIS format
curl -LH "Accept: application/x-research-info-systems" \
  "https://doi.org/10.1038/nature14539"

# Get formatted citation (APA style)
curl -LH "Accept: text/x-bibliography; style=apa" \
  "https://doi.org/10.1038/nature14539"

# Get formatted citation (Chicago style)
curl -LH "Accept: text/x-bibliography; style=chicago-author-date" \
  "https://doi.org/10.1038/nature14539"
Available Formats
Accept HeaderFormatUse Case
application/vnd.citationstyles.csl+jsonCiteproc JSONProgrammatic metadata
application/x-bibtexBibTeXLaTeX bibliography
application/x-research-info-systemsRISReference managers
text/x-bibliography; style=apaFormatted textDirect citation
application/rdf+xmlRDF/XMLLinked data
text/turtleTurtle RDFLinked data
application/vnd.schemaorg.ld+jsonSchema.org JSON-LDWeb metadata
application/jsonDataCite JSONDataCite DOIs
application/vnd.crossref.unixref+xmlCrossref XMLFull Crossref metadata
Citation Styles

Over 9,000 CSL styles available:

bash
# APA 7th edition
style=apa

# Chicago Manual of Style (author-date)
style=chicago-author-date

# IEEE
style=ieee

# MLA
style=modern-language-association

# Harvard
style=harvard-cite-them-right

# Vancouver (medical)
style=vancouver

# Nature
style=nature

Citeproc JSON Response

json
{
  "DOI": "10.1038/nature14539",
  "type": "article-journal",
  "title": "Deep learning",
  "author": [
    {"given": "Yann", "family": "LeCun"},
    {"given": "Yoshua", "family": "Bengio"},
    {"given": "Geoffrey", "family": "Hinton"}
  ],
  "container-title": "Nature",
  "volume": "521",
  "issue": "7553",
  "page": "436-444",
  "issued": {"date-parts": [[2015, 5, 28]]},
  "publisher": "Springer Science and Business Media LLC",
  "ISSN": ["0028-0836", "1476-4687"],
  "URL": "http://dx.doi.org/10.1038/nature14539",
  "abstract": "Deep learning allows computational models..."
}

Python Usage

python
import requests


def get_metadata(doi: str) -> dict:
    """Get structured metadata for a DOI."""
    resp = requests.get(
        f"https://doi.org/{doi}",
        headers={"Accept": "application/vnd.citationstyles.csl+json"},
        allow_redirects=True,
    )
    resp.raise_for_status()
    return resp.json()


def get_bibtex(doi: str) -> str:
    """Get BibTeX entry for a DOI."""
    resp = requests.get(
        f"https://doi.org/{doi}",
        headers={"Accept": "application/x-bibtex"},
        allow_redirects=True,
    )
    resp.raise_for_status()
    return resp.text


def get_formatted_citation(doi: str,
                            style: str = "apa") -> str:
    """Get a formatted citation string."""
    resp = requests.get(
        f"https://doi.org/{doi}",
        headers={
            "Accept": f"text/x-bibliography; style={style}",
        },
        allow_redirects=True,
    )
    resp.raise_for_status()
    return resp.text.strip()


def batch_bibtex(dois: list) -> str:
    """Generate BibTeX file for multiple DOIs."""
    entries = []
    for doi in dois:
        try:
            bib = get_bibtex(doi)
            entries.append(bib)
        except requests.HTTPError:
            entries.append(f"% Failed to resolve: {doi}")
    return "\n\n".join(entries)


# Example: get metadata
meta = get_metadata("10.1038/nature14539")
authors = ", ".join(
    f"{a['given']} {a['family']}" for a in meta.get("author", [])
)
print(f"{meta['title']}")
print(f"  Authors: {authors}")
print(f"  {meta.get('container-title')} ({meta.get('volume')})")

# Example: get BibTeX
bibtex = get_bibtex("10.1038/nature14539")
print(f"\nBibTeX:\n{bibtex}")

# Example: formatted APA citation
apa = get_formatted_citation("10.1038/nature14539", "apa")
print(f"\nAPA: {apa}")

# Example: batch export
bibliography = batch_bibtex([
    "10.1038/nature14539",
    "10.5555/3295222.3295349",
])
with open("references.bib", "w") as f:
    f.write(bibliography)

Use Cases

  1. Bibliography generation: Export BibTeX/RIS for any DOI list
  2. Citation formatting: Generate properly formatted citations
  3. Metadata extraction: Get structured metadata for data pipelines
  4. Linked data: Retrieve RDF for knowledge graph construction
  5. Verification: Confirm publication details from authoritative source

References

See Also

  • doi-resolution-guide -- Conceptual overview of DOI resolution, validation, normalization, and CrossRef API usage.

© wentorai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/literature/metadata/doi-content-negotiation of wentorai/research-plugins.

Open the folder on GitHubat commit bf44b3c

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in wentorai/research-plugins, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Doi Content Negotiation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Doi Content Negotiation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doi Content Negotiation this skillwentorai/research-plugins2981 repos~1.5kAutomated safety check: PassMIT
Citation Managementneflibata-feng/MyArxiv-Agent12619 repos~8.1kAutomated safety check: NotesMIT
Academic Paper Writing PipelineImbad0202/academic-research-skills51k—~16kAutomated safety check: PassCustom licence
Literature Review AgentAr9av/PaperOrchestra6771 repos~5.2kAutomated safety check: PassCustom licence
Academic Searchustc-ai4science/academic-search666—~1.1kAutomated safety check: PassMIT
Collaborating With Claudeappautomaton/latex-arxiv-SKILL4581 repos~1.5kAutomated safety check: PassMIT

Similar skills

  • Citation Management

    neflibata-feng/MyArxiv-Agent

    Comprehensive citation management for academic research. An agent skill from neflibata-feng/MyArxiv-Agent.

    126 GitHub starsUsed in 19 repos~8.1k tokens
    Research & ScienceAuto-check: notes
  • Academic Paper Writing Pipeline

    Imbad0202/academic-research-skills

    Runs a 12-agent pipeline that plans, drafts, cites, reviews and formats academic papers, with modes for revision, rebuttals, abstracts and citation checks.

    51k GitHub stars~16k tokensUpdated today
    Research & ScienceAuto-check passed
  • Literature Review Agent

    Ar9av/PaperOrchestra

    Step 3 of the PaperOrchestra pipeline (arXiv:2604.05018). An agent skill from Ar9av/PaperOrchestra.

    677 GitHub starsUsed in 1 repo~5.2k tokens
    Research & ScienceAuto-check passed
  • Academic Search

    ustc-ai4science/academic-search

    A skill your agent uses when the user asks to search or review academic papers, retrieve scholarly metadata or citation counts, validate or deduplicate scholarly records, find an author's…

    666 GitHub stars~1.1k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed
  • Collaborating With Claude

    appautomaton/latex-arxiv-SKILL

    Use the Claude Code CLI to consult Claude and delegate coding tasks for prototyping, debugging, and code review.

    458 GitHub starsUsed in 1 repo~1.5k tokens
    Research & ScienceAuto-check passed
  • Arxiv MCP Server

    blazickjp/arxiv-mcp-server

    A skill your agent uses when finding, comparing, reading, or monitoring arXiv papers, including requests for abstracts, citation graphs, original LaTeX, section-level technical details, or…

    3.2k GitHub stars~353 tokensUpdated yesterday
    Research & ScienceAuto-check passed

More from wentorai/research-plugins

All 405 skills in this repo
  • Abstract Writing Guide

    wentorai/research-plugins

    Craft structured research abstracts that maximize clarity and journal acceptance

    298 GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Academic Citation Manager

    wentorai/research-plugins

    Manage academic citations across BibTeX, APA, MLA, and Chicago formats

    298 GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check passed
  • Academic Paper Summarizer

    wentorai/research-plugins

    Summarize academic papers with structured extraction of key elements

    298 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Academic Study Methods

    wentorai/research-plugins

    Evidence-based study techniques for academic learning and retention

    298 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Academic Tone Guide

    wentorai/research-plugins

    Adjust writing tone and register for academic audiences and venues

    298 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Academic Translation Guide

    wentorai/research-plugins

    Academic translation, post-editing, and Chinglish correction guide

    298 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed

Works with

Questions about Doi Content Negotiation

What does Doi Content Negotiation do?

Retrieve structured metadata from any DOI via HTTP content negotiation. Doi Content Negotiation is an agent skill from wentorai/research-plugins.

When should I use Doi Content Negotiation?

Doi Content Negotiation fits situations like: tasks that involve Citation management.

How do I install Doi Content Negotiation in Claude Code?

Run `npx skills add wentorai/research-plugins --skill doi-content-negotiation -a claude-code`. Or copy the skill folder (skills/literature/metadata/doi-content-negotiation in wentorai/research-plugins) into .claude/skills/doi-content-negotiation in your project. Claude Code loads it when a task matches its description.

How do I install Doi Content Negotiation in Codex?

Run `npx skills add wentorai/research-plugins --skill doi-content-negotiation -a codex`. Or copy the skill folder (skills/literature/metadata/doi-content-negotiation in wentorai/research-plugins) into .agents/skills/doi-content-negotiation in your project. Codex loads it when a task matches its description.

Can I use Doi Content Negotiation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wentorai/research-plugins --skill doi-content-negotiation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doi-content-negotiation, .gemini/skills/doi-content-negotiation, .github/skills/doi-content-negotiation and .opencode/skills/doi-content-negotiation in your project.

What does Doi Content Negotiation need to run?

Going by SKILL.md and its folder, Doi Content Negotiation needs the command-line tools its instructions call (curl). Our summary lists: Python 3.

Does Doi Content Negotiation access the network?

SKILL.md names 5 domains. In commands or code: doi.org and dx.doi.org; the agent is likely to contact these when it follows the instructions. As links in the text: citation.crosscite.org, crossref.org and github.com. This is read from the text; nothing was executed.

Is Doi Content Negotiation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Doi Content Negotiation use?

Doi Content Negotiation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Doi Content Negotiation use?

About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Doi Content Negotiation?

Skills that share tags, products or a category with Doi Content Negotiation: Citation Management (neflibata-feng/MyArxiv-Agent, 126 stars), Academic Paper Writing Pipeline (Imbad0202/academic-research-skills, 51k stars), Literature Review Agent (Ar9av/PaperOrchestra, 677 stars) and Academic Search (ustc-ai4science/academic-search, 666 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Doi Content Negotiation?

wentorai (a GitHub user) maintains it in wentorai/research-plugins, which has 298 GitHub stars. The repository holds 405 skills in this directory. The repository was last updated on June 19, 2026.

Source: wentorai/research-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.