Geoff Goodman
banner
goodman.dev
Geoff Goodman
@goodman.dev
Curious mind. Creator of https://plnkr.co. Tech lead for extensibility at Auth0 (OKTA). I will never stop experimenting.
Here's a demo of two aspects of MCP Auth.

1. Authenticating to an MCP Server in coordination with the MCP Host (VS Code Insiders).

2. Authenticating to a downstream service (Confluence) on demand for a tool, `confluence_search`.

The MCP Host provides (1) but is oblivious to (2).
May 29, 2025 at 8:15 PM
@superhackers.bsky.social what's up with the repeated likes on the same posts over time?
May 16, 2025 at 7:42 PM
Go Habs Go!!
April 28, 2025 at 12:01 AM
Society at large would benefit from a PID controller.
March 26, 2025 at 1:22 PM
Sending unsolicited AI-generated email to the address scraped from my GitHub profile is not a growth hack, it's in violation of the CAN-SPAM act.
February 14, 2025 at 2:18 AM
Some critical projects like @typescriptlang.org don't (or can't) follow SemVer. They suggest users pin versions in package.json.

But what if npm package versions could explicitly *declare* their compatibility range.

Clients could further constrain ranges for upon opt in.

Best of both worlds.
January 22, 2025 at 8:25 PM
I've seen folks looking to use AsyncLocalStorage as a way to propagate identity across async boundaries in server logic.

That seems very scary to me because AFAIK it relies on 3rd party libs opting into AsyncResource or risking confusion in some edge cases.

WDYT?
January 14, 2025 at 9:43 PM
Reposted by Geoff Goodman
WinterTC is here 🎉

TC55 is a new Ecma Technical Committee for Web-interoperable Server Runtimes, originating from the existing W3C WinterCG group.

This means the group is now able to publish standards, with the first effort being the Minimum Common API.
January 10, 2025 at 3:54 PM
Reposted by Geoff Goodman
What are some useful pattern you’d expect to work across bundlers? We’re collecting a list here: github.com/tc39/js-outr...
Tools: Common Conventions · Issue #49 · tc39/js-outreach-groups
There's a variety of behaviors in authored JavaScript that (web) developers may depend on that aren't described in any officially published spec. This is an attempt to collect them and link to the ...
github.com
January 7, 2025 at 9:58 PM
@zachleat.com fascinating interview on @syntax.fm. Very inspiring.

It sounds like many of the product velocity benefits of federation could also accrue on the backend. Do you have thoughts / observations? Worthwhile pursuit?
December 18, 2024 at 1:21 PM
This seems like a fascinating innovation in load balancing but I feel like I didn't get a full picture from the talk:

1. Do the use the latency of the Probes or some aggregate of the Queries as predictors?
2. What if Queries are very heterogenous?
3. How do they derive predicted latency for RIF(n)?
"This is what allows us to have the best of both worlds, most of the time: simultaneously routing based on latency and avoiding the highest-RIF replicas"
www.youtube.com/watch?v=PSP3...
NSDI '24 - Load is not what you should balance: Introducing Prequal
YouTube video by USENIX
www.youtube.com
December 17, 2024 at 2:00 AM
Here's my aspirational vision for a modelcontextprotocol.io (MCP) project. I'm pretty excited by the potential but the scope is _huge_.

If you're unfamiliar with the MCP, it tries to standardize a protocol for clients like Claude, Zed editor, etc. to get extensible super-powers.

WDYT?
December 12, 2024 at 9:17 PM
Reposted by Geoff Goodman
We are hosting an MCP hackathon in SF (December 10th) and NYC (December 11th) and giving away $30,000 In Anthropic API credits. Come join us! x.com/alexalbert__.... 🧵for more info
x.com
x.com
December 5, 2024 at 8:05 PM
Huge deal! It happened. I hope this will pull back the ESM CJS partition that crept in. Bravo @joyeecheung.bsky.social and collaborators!
🎉 require(esm) has been unflaged in v22.12.0! We are also planning to unflag it on v20.x later if it goes well in v22.x.

As before please try it out and report any bugs you find. (hopefully none, but with how wild the module loading edge cases can be, one never knows!).
A new Node.js LTS Release is out! 🥳

v22.12.0 enables require(esm) by default!

Read more about that change and the rest of additions / fixes in our blog post / CHANGELOG: nodejs.org/en/blog/rele...

#nodejs #javascript
December 4, 2024 at 3:47 PM
Reposted by Geoff Goodman
I bet OCI images (docker images) are a pretty perfect distribution format for MCP servers. As containers, we can abstract away dependencies while also isolating the host system as much as we want. And they should *just work* as stdio servers with the `-i` flag.

Anyone already working on this?
December 1, 2024 at 11:42 PM
I bet OCI images (docker images) are a pretty perfect distribution format for MCP servers. As containers, we can abstract away dependencies while also isolating the host system as much as we want. And they should *just work* as stdio servers with the `-i` flag.

Anyone already working on this?
December 1, 2024 at 11:42 PM
Reposted by Geoff Goodman
Here is a fun one for you all: contrary to popular belief, in Node.js promises (async/await) would not yield to the event loop. So, if you want the event loop to process I/O in between a long chain of async functions that actually aren’t doing I/O, you would need to add a setImmediate in between.
November 28, 2024 at 4:59 PM
I think @anthropic.com's Model Context Protocol is fascinating. I've been re-implementing the stdio and sse protocols to understand the inner workings and am at the MVP stage.

I'm exposing a custom weather tool that always responds with `"sunny with a chance of meatballs"` 🤣. Claude is onto me.
November 28, 2024 at 4:37 PM
Once upon a time, Agile was agile.
November 26, 2024 at 6:46 PM
TIL that browser fetch doesn't allow duck-typed AbortSignal instances or Proxy instances that wrap real signals.

Seems like a bit of a bummer for performant, interoperable AbortSignal tooling.

Is this by design?
November 26, 2024 at 6:04 PM
The very need for this makes me think it is evidence or a larger disconnect: package.json tries to encode metadata for three very distinct and sometimes mutually exclusive use-cases:

1. Developing the library / service / app
2. Consuming the library
3. Running the service / app
webpro.nl Lars @webpro.nl · Nov 25
✂️ What goes into dependencies vs devDependencies?

Anyone wrote the go-to article? Could image there's like only a few clear strategies most projects could agree on.

Jotted down this reply, but would be great to be able to link to something less scrappy/informal.

github.com/webpro-nl/kn...
November 25, 2024 at 6:50 PM
Reposted by Geoff Goodman
A closely related quote: "never accept criticism from someone you would not ask for advice."
November 25, 2024 at 5:05 AM
Reposted by Geoff Goodman
TypeScript 5.7 is released 🎉

🔶 ES2024 library types
🔷 Checker: Never-initialized variables
🔷 Checker: Stricter JSON imports
🔷 Emit: Extension rewriting (*.ts to *.js)
🔷 DTS: Computed methods
🔷 IDE: Better tsconfig discovery
🔷 Perf: Code Caching ⚡️ 2.5x faster startup
📢 TypeScript 5.7 is here! Now with

✅ Better checks for uninitialized variables
✅ Smarter tsconfig lookup in editors
✅ Improved startup time
✅ Stricter checks for JSON imports
✅ Extension rewrites for relative imports

and more! Try it today!

devblogs.microsoft.com/typescript/a...
Announcing TypeScript 5.7 - TypeScript
Today we excited to announce the availability of TypeScript 5.7! If you’re not familiar with TypeScript, it’s a language that builds on JavaScript by adding syntax for type declarations and annotation...
devblogs.microsoft.com
November 22, 2024 at 11:05 PM
What are the go-to tools for testing against memory leaks in JavaScript libraries?

I'm particularly worried about an object graph being retained by circular references.
November 22, 2024 at 9:57 PM
Reposted by Geoff Goodman
You know what feels terrible? Leading open source volunteers on a wild goose chase only to discover you were at fault all along. 😫
November 21, 2024 at 6:50 PM