I don't have any resources for NPCs – I tend to make my own from scratch – but here's a couple ideas I use when designing my own:
Principle #1:
Reducing cognitive load on the GM should be the priority of monster/NPC design, equal to a nice marriage of narrative and mechanics. 2-5 things happening in one stat block is pleeennnty, except in the cases of bosses. This is why using player classes and heavy reliance on lists of spells is typically not the best fit for NPCs - because player-facing rules tend to involve more decisions and micro-management.
Principle #2:
As much as possible, you want features/power that pull double duty / have multiple functions. It's not just a defense but it's also an offense. It's not just a summons but it also allows the NPC to move. This helps compress the stat block & helps mitigate action economy shortcomings.
Principle #3:
Imagine the hell out of it. Be inspired by existing implementations & use touchstones of rules familiarity to ease the cognitive load, but don't feel beholding to them – feel free to make bold moves.
Example (see below):
The spellthief is a meant to be a minion encountered with other monsters/NPCs/spellthieves. The idea is to tweak Sneak Attack (that a GM is likely already familiar with), but make it work in a different way that surprises players and could be either offensive or defensive in nature depending on PC's active magics & spell load-out.
Spellthief
Medium humanoid (any), neutral or chaotic evil
Armor Class 13 (leather armor)
Hit Points 39 (6d8+12)
Speed 30 ft.
STR DEX CON INT WIS CHA
10 (+0) 15 (+2) 14 (+2) 12 (+1) 12 (+1) 12 (+1)
Skills Acrobatics +4, Deception +5, Perception +3, Stealth +6, Sleight of Hand +4
Senses passive Perception 13
Languages Common, Thieves’ Cant
Challenge 1 (200 XP)
Cunning Action. The spellthief can take a bonus action to Disengage, Hide, or Use an Object.
Innate Spellcasting. The spellthief’s innate spellcasting ability is Charisma (+3 to hit with spell attack, spell save DC 11). It can innately cast detect magic at will, requiring no components.
Spellthief’s Sneak Attack. Once per turn, the spellthief can deal an extra 10 (3d6) damage to one creature its hits with an attack if it has advantage on the attack roll. The spellthief doesn’t need advantage on the attack roll if another enemy of the target is within 5 feet of it, that enemy isn’t incapacitated, and the spellthief doesn’t have disadvantage on the attack roll.
The spellthief can opt to reduce this extra damage by up to the entire 3d6, attempting to drain a spell slot of a level corresponding to the number of d6’s the damage is reduced by (e.g. reduce by 2d6 to drain a 2nd level spell slot). The target loses that spell slot, while the spellthief gains it for one minute, during which the spellthief can use it to cast one spell of its choice from the target’s available spells.
Alternately, if the target has an ongoing spell effect (e.g. bless), the spellthief may instead reduce its extra damage by a number of dice equal to the level of the ongoing spell effect, transferring it to itself instead. The spell duration and who concentrates are unchanged.
ACTIONS
Multiattack. The spellthief makes two attacks: one shortsword and one dagger attack.
Shortsword. Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6+2) piercing damage.
Dagger. Melee or Ranged Weapon Attack: +4 to hit, reach 5 ft. or ranged 20/60 ft., one target. Hit: 4 (1d4+2) piercing damage.