Claude Code (Part 7)

Neil HaddleyJanuary 26, 2026

MCP Servers

AIai

Using Context7 with Claude Code might solve problems of outdated information in the AI coding assistant left over from training. After the Context7 model context protocol server is added to Claude Code the agent fetches real-time, version-specific library documentation for Claude, helping to reduce errors?

Generate an example React 17 application

I used Claude Sonnet 4.5 and GitHub Copilot to generate an example React 17 application

PROMPT
1generate a very simple React 17 example that uses ReactDOM.render() API.
package.json

package.json

index.js

index.js

http://localhost:3000

http://localhost:3000

Without Context7

PROMPT
1How would you migrate this React 17 project to React 18?
I'll help you migrate this React 17 project to React 18...

I'll help you migrate this React 17 project to React 18...

Use createRoot() instead of ReactDOM.render()

Use createRoot() instead of ReactDOM.render()

Without the Context7 model context protocol server Claude Code was able to identify the need to use createRoot() instead of ReactDOM.render().

As a test I added the Context7 model context protocol server

TEXT
1claude mcp add context7 -- npx -y @upstash/context7-mcp --api-key ctx7sk-f99eabb8-852c-4d68-8f77-a61713eb204d
claude mcp add context7 -- npx -y @upstash/context7-mcp --api-key ctx7sk-f99eabb8-852c-4d68-8f77-a61713eb204d

claude mcp add context7 -- npx -y @upstash/context7-mcp --api-key ctx7sk-f99eabb8-852c-4d68-8f77-a61713eb204d

/Users/neilhaddley/.claude/settings.json

/Users/neilhaddley/.claude/settings.json

With Context7

PROMPT
1How would you migrate this React 17 project to React 18? **use context7**
How would you migrate this React 17 project to React 18? **use context7**

How would you migrate this React 17 project to React 18? **use context7**

Do you want to proceed with mcp_context7_...

Do you want to proceed with mcp_context7_...

Do you want to proceed with mcp_context7_query-docs...

Do you want to proceed with mcp_context7_query-docs...

Accept this plan?

Accept this plan?

Allow this bash command?

Allow this bash command?

With Context7's help Claude Code was again able to identify the need to use createRoot() instead of ReactDOM.render().

http://localhost:3000 (updated)

http://localhost:3000 (updated)

TEXT
1Replace the deprecated ReactDOM.render() with the new createRoot() API:
2
3Before:
4
5
6import ReactDOM from 'react-dom';
7ReactDOM.render(<App />, document.getElementById('root'));
8After:
9
10
11import { createRoot } from 'react-dom/client';
12const root = createRoot(document.getElementById('root'));
13root.render(<App />);
Migration complete

Migration complete